Ich habe Ubuntu 12.04 64 Bit installiert. Ich muss mit Python und Scipy arbeiten. Ich habe sie installiert und beim Ausführen des Tests:
python -c "import scipy; scipy.test()"
Ich bekomme die Nachricht:
ImportError: libatlas.so.3gf: Shared Object-Datei kann nicht geöffnet werden: Keine solche Datei oder kein solches Verzeichnis
Ich habe jedoch Libatlas-Bibliotheken unter dem Verzeichnis installiert /usr/lib/atlas-base
. Ich weiß, dass ich die Dateien direkt darunter kopieren kann /usr/lib
, aber ich frage mich, wie ich den scipy so einrichten kann, dass er die Bibliotheken von verwendet usr/lib/atlas-base
.
Antworten:
Sie müssen nirgendwo etwas kopieren.
Sie sollten die Atlasbibliotheken zur Liste der zu
ld
durchsuchenden Standorte hinzufügen .Im Verzeichnis
/etc/ld.so.conf.d
können Sie die Datei hinzufügenatlas-lib.conf
. Diese Datei sollte das Verzeichnis enthältlibatlas.so.3gf
, das ist/usr/lib/atlas-base
.Sie können dies tun, indem Sie ausführen
Endlich laufen
zu aktualisieren,
ld
so dass es über diese neue Datei weiß.Alternativ können Sie festlegen
LD_LIBRARY_PATH
, dass der Pfad zur Bibliothek bei der Ausführung eingeschlossen wird und in SciPy verfügbar sein soll.quelle
sudo ldconfig
, um sie zu aktivierenvirtualenv
, wie würden Sie in diesem Fall tun?virtualenv
ist ein völlig eigenständiges Thema, aber ohne Root-Zugriff können SieLD_LIBRARY_PATH
in geeigneter Weise einstellen , was in der Antwort erwähnt wird.Für mich mit einem virtualenv,
export LD_LIBRARY_PATH=/usr/lib/atlas-base/:${LD_LIBRARY_PATH}
am Ende meiner.bashrc
Datei behoben.quelle