2015-11-19 21 views
13

Ich benutze PyCharm 5, um ein Python 2.7 (Anaconda) Skript in Ubuntu auszuführen. Mein Skript importiert ein Modul mit import tensorflow, aber das verursacht den Fehler.. Es scheint also, dass die Bibliothek libcudart.so.7.0 von diesem Modul benötigt wird, aber nicht gefunden werden kann.PyCharm kann Bibliothek nicht finden

Jetzt habe ich gesehen, dass diese Bibliothek auf meinem Rechner in /usr/local/cuda-7.0/targets/x86_64-linux/lib ist. Also, in PyCharm, ging ich zu Settings->Project Interpreters->Interpreter Paths. Dies hatte eine Liste von Pfaden, wie /home/karnivaurus/Libraries/Anaconda/python2.7. Ich habe dann zu dieser Liste den oben erwähnten Pfad hinzugefügt, der die erforderliche Bibliothek enthält.

Das Problem wurde jedoch nicht behoben. Ich bekomme immer noch eine Fehlermeldung, dass libcudart.so.7.0 nicht gefunden werden kann. Wenn ich allerdings mein Skript von der Shell aus laufe (python myfile.py), läuft es gut.

Wie kann ich PyCharm mitteilen, wo diese Bibliothek zu finden ist?


habe ich bemerkt, dass, wenn ich print sys.path in meinem Skript haben, zu denen die Wege es druckt in Settings->Project Interpreters->Interpreter Paths ganz andere sind ... sie sollten gleich sein?

+1

Führt PyCharm Ihr Skript mit demselben 'Python' wie Ihr Terminal aus? Das wäre der erste Blick. Stellen Sie sicher, dass die Ausführungskonfiguration den richtigen Interpreter verwendet. Führen Sie> Konfigurationen bearbeiten aus. Wählen Sie Ihr Projekt, dann stellen Sie unter dem Projekt-Interpreter sicher, dass Sie Ihr Anaconda-Python ausgewählt haben. –

+0

Ja - Ich habe Anaconda Python für mein PyCharm-Projekt ausgewählt, und auch den Interpreter in meinem Terminal ... – Karnivaurus

+0

Ich weiß es nicht. http://stackoverflow.com/questions/28390961/using-anaconda-within-pycharm und http://stackoverflow.com/questions/33646541/tensorflow-and-anaconda-on-ubuntu könnte Ihnen bei der weiteren Fehlersuche helfen. –

Antwort

14

Der Weg zu Ihrer Cuda-Bibliothek scheint mir seltsam. Ich würde erwarten, dass es /usr/local/cuda-7.0/lib64 oder /usr/local/cuda-7.0/lib ist.

Haben Sie alle die cuda installation Prozedur?

Wenn Sie in der Befehlszeile env eingeben, sehen Sie einen Pfad zu cuda in Ihrem LD_LIBRARY_PATH?


Update von Kommentaren unten:

Das Problem ist, dass PyCharm vom Desktop aufgerufen wurde, und wurde nicht die richtigen Umgebungsvariablen zu bekommen. Lösung ist entweder:

  • invoke von der Kommandozeile,
  • ein Skript-Umgebung zu setzen und dann aufzurufen, und stellen Sie einen Link zu diesem Skript auf dem Desktop,
  • oder setzen Umgebungsvariablen auf die Desktop-Objekt
+0

Ja, ich habe die offiziellen CUDA Installationsanweisungen befolgt. Das Verzeichnis unter/usr/local/cuda-7.0/lib64 ist eigentlich eine symbolische Verbindung zu/usr/local/cuda-7.0/targets/x86_64-linux/lib. Ich bin mir nicht sicher, warum dieser Link gemacht wurde, aber ich habe es nicht manuell gemacht. Das Eingeben in 'env' gibt mir:' LD_LIBRARY_PATH =/home/karnivaurus/Bibliotheken/CUDNN-7.0/lib64: /usr/local/cuda-7.0/targets/x86_64-linux/lib: /usr/local/cuda-7.0/ lib64'. Daher ist das erforderliche Verzeichnis vorhanden (daher funktioniert mein Skript beim Ausführen vom Terminal aus), aber es scheint, dass PyCharm diese Umgebungsvariable nicht verwendet. – Karnivaurus

+2

Nur auf der Lerche, führen Sie Pycharm von einem Symbol auf dem Desktop? Haben Sie versucht, es von einer Shell aus aufzurufen, in der alle Umgebungsvariablen korrekt eingestellt sind? – Laizer

+0

Ja, ich habe PyCharm von einem Icon aus gestartet ... wenn ich versuche, es von einer Shell aus auszuführen, dann funktioniert das Script! Aber ich möchte das nicht tun müssen ...! Es muss eine Möglichkeit geben, damit PyCharm dieselben Umgebungsvariablen lädt ... – Karnivaurus

1

Haben Sie den richtigen Python-Interpreter in den Projekteinstellungen ausgewählt? Siehe here.

Ich hatte ein ähnliches Problem und die Änderung des Interpreters löste es, ohne ein neues Symbol zu erstellen.

19

Ich habe dieses Problem erst vor kurzem mit einem Remote-Debugger, aber ich glaube, es ist immer noch die gleiche Lösung. Ich habe dem Abschnitt Umgebungsvariablen in den Optionen für die Ausführungs-/Debugkonfiguration, die unter Ausführen> Konfigurationen bearbeiten ... hinzugefügt wurden, Folgendes hinzugefügt:Dialog: LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

+2

Einfachste Lösung hier. Arbeitete für mich, danke – Conchylicultor

+0

Ich fand, dass das Aufrufen vordefinierter Umgebungsvariablen in diesem Dialog nicht funktionierte. Ich musste den vollständigen Pfad verwenden, wenn ich diese Umgebungsvariablen definiere. –

+0

Ich fand diese Lösung am besten für mich, wenn ich TensorFlow in einer Anaconda-Umgebung installierte und PyCharm als meine IDE verwendete. Vielen Dank. –

1

Bearbeiten Sie Ihre pycharm.desktop, die Umgebungsvariable in exec angeben, wie unten:

[Desktop Entry] 
Version=1.0 
Type=Application 
Name=Pycharm 
Exec=env LD_LIBRARY_PATH=:/usr/local/cuda/lib64:/usr/local/cuda/lib64 /home/cwh/software/pycharm-2016.1.4/bin/pycharm.sh 
Icon=/home/cwh/software/pycharm-2016.1.4/bin/pycharm.png 
Name[zh_CN]=Pycharm 

so pycharmcuda

+0

Dieser Ansatz gilt jedoch nicht für einen Remote-Debugger. –

5

Während einige dieser Antworten sind richtig zu finden, und könnte funktionieren, ich Ich habe nicht gesehen, wonach das OP ausdrücklich gefragt hat, und hier können Sie Umgebungen für die Python-Konsole festlegen.

Datei> Einstellungen> Build, Ausführung, Deployment> Konsole> Python-Konsole

In den Optionen gibt, werden Sie einen Platz finden, um Umgebungsvariablen zu definieren: Dies kann an der Innenseite PyCharm erreicht werden. Setzen Sie dort LD_LIBRARY_PATH.

+0

Dies sollte die akzeptierte Antwort sein. Dies scheint der Lösung, nach der ich gesucht habe, ähnlich zu sein. Das Problem, mit dem ich konfrontiert war, war, dass ich versuchte, die vordefinierte Umgebungsvariable $ CUDA_HOME/lib aus dem PyCharms Konfigurationseinstellungen-Dialog aufzurufen. Als ich zum vollen/usr/local/cuda/lib wechselte, fing alles an zu arbeiten. –

+0

Vereinbart, dass dies wie die tatsächliche Antwort scheint. Die Einstellung von CUDA_HOME auf/usr/local/cuda ist auch eine gute Idee im Abschnitt "Umgebungen" von pycharm. –

Verwandte Themen