Я пытаюсь установить Scikit-Learn на 64-разрядном сервере Red Hat Enterprise 6.6, на котором у меня нет привилегий root. Я сделал новую установку Python 2.7.9, Numpy 1.9.2, Scipy 0.15.1 и Scikit-Learn 0.16.1. Установка Atlas BLAS на сервере - 3.8.4.Неопределенные символы в Scipy и Scikit-learn на RedHat
Я могу установить scikit учиться, но когда я пытаюсь импортировать его в Python, я получаю
File "<pyinstall>/site-packages/scipy/parse/linalg/isolve/_iterative.so: undefined symbol: slamch_"
Точно так же, когда я запускаю
>>> import scipy; scipy.test()
Я получаю 16 ошибок, из них 14 ImportErrors для следующих неопределенных символов:
scipy/cluster/_vq.so: undefined symbol _gfortran_st_write_done
scipy/special/_ufuncs.so: undefined symbol dstevr_
scipy/linalg/_fblas.so: undefined symbol csyr_
scipy/lib/blas/fblas.so: undefined symbol slamch_
scipy/lib/lapack/flapack.so: undefined symbol sgbsv_
scipy/spatial/qhull.so: undefined symbol _gfortran_st_write_done
Мои исследования Несколько источников я нашел предположить, что такие проблемы, как это происходит из-за несогласованной компилятора Фортрана в компиляции библиотеки BLAS/LAPack и scipy, например this mail exchange, а другой - с 2007 года (не связано, потому что моя репутация недостаточно высока, чтобы включить другую ссылку, она ссылается на символ _gfortran_st_write_done). Тем не менее, сборка BLAS была выполнена на сервере, на котором установлен gfortran (нет компиляторов g77 или Intel), и я перекомпилировал scipy, чтобы явно использовать gfortran.
В записях по установке также упоминается, что версия LAPACK, которая поставляется с Atlas BLAS, не является полной реализацией и говорит, что ImportErrors может возникнуть, если установленный LAPACK отсутствует некоторые функции. Итак, я выполнил инструкции here, чтобы установить полную версию LAPACK 3.5.0, также скомпилированную с помощью gfortran. Затем я перекомпилировал scipy и sklearn указал на обновленные библиотеки и получил те же ошибки импорта.
Мой вопрос Есть ли что-нибудь, что может вызвать эти ошибки, кроме несогласованных компиляторов Fortran? Кроме того, есть ли другая библиотека, которую мне нужно перекомпилировать?
Второй почтовый обмен, ссылающийся на символ _gfortran_st_write_done, [здесь] (http://mail.scipy.org/pipermail/scipy-user/2007-December/014944.html). – denbro42
Вы пробовали просто использовать anaconda вместо того, чтобы самому собрать все? –
Это действительно работает отлично, спасибо. Хотел бы я подумать об этом раньше! – denbro42