Ответ 1
Запустите sudo update-alternatives --all
и установите liblapack.so.3gf
в /usr/lib/lapack/liblapack.so.3gf
Я искал простой способ установить/скомпилировать Numpy с OpenBLAS, но не нашел простой ответ. Вся документация, которую я видел, требует слишком много знаний, как предоставленных для кого-то вроде меня, который не используется для компиляции программного обеспечения.
В Ubuntu есть два пакета, связанных с OpenBLAS: libopenblas-base
и libopenblas-dev
.
Как только они будут установлены, что я должен сделать, чтобы снова установить Numpy с ними?
Спасибо!
Обратите внимание, что когда эти пакеты OpenBLAS установлены, Numpy больше не работает: его нельзя импортировать: ImportError:/usr/lib/liblapack.so.3gf: undefined symbol: ATL_chemv. Проблема возникает также при установке Theano с их инструкциями веб-сайта для Ubuntu.
Это уже было замечено здесь.
Запустите sudo update-alternatives --all
и установите liblapack.so.3gf
в /usr/lib/lapack/liblapack.so.3gf
Чтобы добавить к принятому ответу (используя update-alternatives
), причина этого в том, что OpenBlas несовместим с версией Lapack от Atlas. Для каждой версии Blas и Lapack:
Это из личного опыта (с той же проблемой) и понимания того, почему такая комбинация не упоминалась в этом сравнительном блоге.
Кстати, вы можете просто найти необходимые файлы в /etc/alternatives/
, обычно с именем файла, начинающимся с lib*
. Для каждого из них sudo update-alternatives --config <filename>
. Например, выполните следующие действия:
sudo update-alternatives --config libblas.so
sudo update-alternatives --config libblas.so.3
чтобы изменить версию Blas.
Рассмотрите возможность использования EasyBuild (http://hpcugent.github.io/easybuild/), рамки с открытым исходным кодом для создания и установки программного обеспечения.
Он позволяет (очень легко) создавать и устанавливать (научное) программное обеспечение с различным компилятором и использовать разные библиотеки BLAS (ATLAS, OpenBLAS, ACML, Intel MKL,...).
После установки EasyBuild (pro tip: используйте процедуру начальной загрузки, описанную в https://github.com/hpcugent/easybuild/wiki/Bootstrapping-EasyBuild), она сводится к запуску одной команды, что-то вроде:
eb numpy-1.6.2-goolf-1.4.10-Python-2.7.3.eb -ldr
Сначала будет построена и установлена полная компилятор toolchain (goolf: GCC + OpenBLAS + OpenMPI + LAPACK + FFTW), а затем постройте Python и numpy с помощью этой инструментальной цепочки. И все это, пока вы ходите пообедать.; -)
Отказ от ответственности: я один из разработчиков EasyBuild.