Zainstalowałem Ubuntu 12.04 64-bit. Muszę pracować z Pythonem i Scipy, zainstalowałem je i po uruchomieniu testu:
python -c "import scipy; scipy.test()"
Dostaję wiadomość:
ImportError: libatlas.so.3gf: nie można otworzyć udostępnionego pliku obiektu: brak takiego pliku lub katalogu
Mam jednak biblioteki libatlas zainstalowane w tym katalogu /usr/lib/atlas-base
. Wiem, że mogę skopiować pliki bezpośrednio pod /usr/lib
, ale zastanawiam się, jak skonfigurować Scipy do korzystania z bibliotek usr/lib/atlas-base
?
Odpowiedzi:
Nigdzie nie musisz niczego kopiować.
Należy dodać biblioteki atlasu do listy
ld
przeszukiwanych lokalizacji .W katalogu
/etc/ld.so.conf.d
możesz dodać plikatlas-lib.conf
. Ten plik powinien zawierać kataloglibatlas.so.3gf
, który jest/usr/lib/atlas-base
.Możesz to zrobić, uruchamiając
Wreszcie biegnij
zaktualizować,
ld
aby wiedział o tym nowym pliku.Alternatywnie możesz ustawić
LD_LIBRARY_PATH
włączenie ścieżki do biblioteki podczas uruchamiania i powinna ona być dostępna w SciPy.źródło
sudo ldconfig
aby go uaktywnićvirtualenv
, jak byś zrobił w takim przypadku?virtualenv
jest całkowicie odrębnym tematem, ale bez dostępu do katalogu głównego możesz ustawićLD_LIBRARY_PATH
w odpowiedni sposób, który jest wymieniony w odpowiedzi.Dla mnie, używając virtualenv,
export LD_LIBRARY_PATH=/usr/lib/atlas-base/:${LD_LIBRARY_PATH}
na końcu mojego.bashrc
pliku to naprawiłem.źródło