2016-08-30 16 views
1

Я пытаюсь позволить python находить и использовать установленные библиотеки ATLAS из моего дистрибутива при использовании virtualenv.ATLAS на виртуальном диске python в Fedora для numpy/scipy/scikit-learn

Это на Fedora 21, атласе, атласе-девеле, бла, blas-devel установлены. Вне virtualenv, команда python -c 'import numpy; numpy.show_config()' показывает, что у меня есть ATLAS:

atlas_3_10_blas_threads_info: 
    libraries = ['tatlas'] 
    library_dirs = ['/usr/lib64/atlas'] 
    define_macros = [('HAVE_CBLAS', None), ('ATLAS_INFO', '"\\"3.10.1\\""')] 
    language = c 
    include_dirs = ['/usr/include'] 
lapack_opt_info: 
    libraries = ['tatlas', 'tatlas', 'tatlas'] 
    library_dirs = ['/usr/lib64/atlas'] 
    define_macros = [('ATLAS_INFO', '"\\"3.10.1\\""')] 
    language = f77 
    include_dirs = ['/usr/include'] 
blas_opt_info: 
    libraries = ['tatlas'] 
    library_dirs = ['/usr/lib64/atlas'] 
    define_macros = [('HAVE_CBLAS', None), ('ATLAS_INFO', '"\\"3.10.1\\""')] 
    language = c 
    include_dirs = ['/usr/include'] 
openblas_info: 
NOT AVAILABLE 
openblas_lapack_info: 
NOT AVAILABLE 
[...] 

И ls /usr/lib64/atlas/ дает:

libatlas.a libsatlas.so libsatlas.so.3.10 libtatlas.so.3 
libcblas.so libsatlas.so.3 libtatlas.so  libtatlas.so.3.10 

Я также установки переменной окружения, так что echo $ATLAS дает

/usr/lib64/atlas/libsatlas.so 

Но когда я делаю следующее:

virtualenv venv 
source venv/bin/activate 
pip install --upgrade pip 
pip install numpy 
pip install scipy 
pip install scikit-learn 
python -c 'import numpy; numpy.show_config()' 

я получаю:

lapack_opt_info: 
    libraries = ['openblas', 'openblas'] 
    library_dirs = ['/usr/local/lib'] 
    define_macros = [('HAVE_CBLAS', None)] 
    language = c 
blas_opt_info: 
    libraries = ['openblas', 'openblas'] 
    library_dirs = ['/usr/local/lib'] 
    define_macros = [('HAVE_CBLAS', None)] 
    language = c 
openblas_info: 
    libraries = ['openblas', 'openblas'] 
    library_dirs = ['/usr/local/lib'] 
    define_macros = [('HAVE_CBLAS', None)] 
    language = c 
openblas_lapack_info: 
    libraries = ['openblas', 'openblas'] 
    library_dirs = ['/usr/local/lib'] 
    define_macros = [('HAVE_CBLAS', None)] 
    language = c 
blas_mkl_info: 
NOT AVAILABLE 

Я действительно ценю помощь, как получить NumPy и SciPy просто найти и использовать ATLAS моего распределения в virtualenv.

ответ

1

Вам нужно указать setup.py numpy, где можно найти библиотеки ATLAS.

Попробуйте создать файл .numpy-site.cfg в вашей домашней папке перед запуском pip install. Here's шаблон для этого файла.

Вы, вероятно, нужно добавить строки

[atlas] 
library_dirs = /usr/lib64/atlas 
include_dirs = /usr/include 

Хотя это потребовало немного проб и ошибок в моем опыте.

Использование этого файла в сочетании с pip install похоже надежным образом работает на RHEL и Ubuntu, по крайней мере, в виртуальных средах, где вам не нужно sudo.

Если это не удается для одного или нескольких из numpy, scipy и scikit-learn, рассмотрите возможность установки из источника и измените файл site.cfg внутри исходного каталога перед запуском python setup.py install.

+0

До сих пор не было разрешения, я попробовал '' library_dirs =/usr/lib64/atlas'' и '' include_dirs =/usr/include:/usr/include/atlas-x86_64-base'' под '' [атлас ] ''. Похоже, мне, возможно, придется скомпилировать исходный код, как вы упомянули, если больше не играть с папками, это не поможет. – tkja

 Смежные вопросы

  • Нет связанных вопросов^_^