Я установил Ubuntu 12.04 64 бит. Мне нужно работать с Python и Scipy, я установил их и при запуске теста:
python -c "import scipy; scipy.test()"
Я получаю сообщение:
ImportError: libatlas.so.3gf: невозможно открыть общий объектный файл: такого файла или каталога нет
Тем не менее, у меня есть библиотеки libatlas, установленные в каталоге /usr/lib/atlas-base
. Я знаю, что могу копировать файлы прямо под /usr/lib
, но мне интересно, как я мог настроить scipy для использования библиотек usr/lib/atlas-base
?
Ответы:
Вам не нужно ничего копировать в любом месте.
Вы должны добавить библиотеки атласа в список мест
ld
поиска.В каталог
/etc/ld.so.conf.d
вы можете добавить файлatlas-lib.conf
. Этот файл должен содержать каталогlibatlas.so.3gf
, который есть/usr/lib/atlas-base
.Вы можете сделать это, запустив
Наконец запустить
обновить,
ld
чтобы он знал об этом новом файле.В качестве альтернативы вы можете указать
LD_LIBRARY_PATH
путь к библиотеке при запуске, и он должен быть доступен в SciPy.источник
sudo ldconfig
чтобы сделать его активнымvirtualenv
, как бы вы поступили в этом случае?virtualenv
- это совершенно отдельная тема, но без корневого доступа вы можете установитьLD_LIBRARY_PATH
соответствующий способ, который упоминается в ответе.Для меня, используя virtualenv,
export LD_LIBRARY_PATH=/usr/lib/atlas-base/:${LD_LIBRARY_PATH}
в конце моего.bashrc
файла это исправили.источник