Використання атласу з scipy


13

Я встановив 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?


Будь ласка, не перекреслюйте повідомлення.
Карлсон

Гаразд, видалено зараз.
lmsasu

Відповіді:


19

Вам нікуди нічого не потрібно копіювати.

Ви повинні додати бібліотеки атласу до списку ldпошукових місць.

У каталог /etc/ld.so.conf.dви можете додати файл atlas-lib.conf. Цей файл повинен містити каталог libatlas.so.3gf, який є /usr/lib/atlas-base.

Це можна зробити, запустивши

echo "/usr/lib/atlas-base" | sudo tee /etc/ld.so.conf.d/atlas-lib.conf

Нарешті біжи

sudo ldconfig

оновити, ldщоб він знав про цей новий файл.

Крім того, ви можете налаштувати LD_LIBRARY_PATHвключення шляху до бібліотеки під час запуску, і він повинен бути доступний в SciPy.


Я не впевнений, чи допомогла atlas-lib.conf, але LD_LIBRARY_PATH зробив трюк.
lmsasu

1
@lmsasu Коли ви створюєте цей файл, вам потрібно буде запустити sudo ldconfigйого, щоб активувати його
Karlson

Якщо у вас немає кореневого доступу, який би був найкращий підхід? Якби ви зробили це virtualenv, як би ви зробили в такому випадку?
Альберт

1
@Albert Using virtualenv- це абсолютно окрема тема, але без доступу до кореня ви можете встановити LD_LIBRARY_PATHвідповідний спосіб, який згадується у відповіді.
Карлсон

Такими речами слід займатися або пакетами numpy / scipy, або libatlas-dev, ні? У мене цікава ситуація, коли система numpy 1.9.1 працює чудово, але numpy 1.9.2 у virtualenv виявляє цю проблему. У всякому разі, ваше рішення це виправило. Дякую.
drevicko

1

Для мене, використовуючи virtualenv, export LD_LIBRARY_PATH=/usr/lib/atlas-base/:${LD_LIBRARY_PATH}наприкінці мого .bashrcфайлу це виправлено.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.