Das Importieren eines Python-Moduls funktioniert über die Befehlszeile, nicht jedoch über PyCharm


8

Meine Standard-Python-Binärdatei ist auf die mit der Anaconda-Distribution von Python eingestellt. Dies ist bei zu finden /home/karnivaurus/anaconda/bin/python, und ich habe dies zum Standard gemacht, indem ich meiner .bashrcDatei Folgendes hinzufügte : export PATH=/home/karnivaurus/anaconda/bin:$PATH.

Ich habe auch ein Python-Paket namens caffe, das sich unter befindet /home/karnivaurus/caffe/distribute/python, und ich habe dieses dem Paketsuchpfad hinzugefügt, indem ich meiner .bashrcDatei Folgendes hinzugefügt habe : export PYTHONPATH=${PYTHONPATH}:/home/karnivaurus/caffe/distribute/python.

Jetzt habe ich eine einfache Python-Datei test.pymit dem folgenden Inhalt:

import caffe
print "Done."

Wenn ich dies durch Eingabe python test.pyin das Terminal ausführe , läuft es einwandfrei und druckt "Fertig" aus. Das Problem, das ich habe, ist, wenn ich dies in der PyCharm-IDE ausführe. In PyCharm habe ich den Interpreter so eingestellt /home/karnivaurus/anaconda/bin/python. Wenn ich jedoch test.pyin PyCharm öffne und die Datei in der IDE ausführe, wird folgende Fehlermeldung angezeigt:

ImportError: No module named caffe

Meine Frage lautet also: Warum kann PyCharm das caffeModul nicht finden, wenn es das Python-Skript ausführt, aber es kann gefunden werden, wenn ich das Skript vom Terminal aus ausführe?

Vielen Dank!


2
Ich denke, PyCharm kümmert sich nicht um Ihre .bashrc, da dies eine Bash-spezifische Konfigurationsdatei ist. Sie müssen diese Variable entweder in PyCharm oder in zB.profile
Byte Commander

Antworten:


11

Wie ByteCommander in einem Kommentar sagte, verwendet PyCharm kein bashrc, sodass es nicht weiß, wo sich Ihre Bibliothek befindet.

Auf dem gleichen Bildschirm, auf dem Sie den Interpreter hinzugefügt haben, sehen Sie ein Radsymbol. Klicken Sie darauf. Es wird ein Menü angezeigt. Klicken Sie auf Mehr. Sie sollten einen Bildschirm wie diesen sehen:

PyCharm Interpreter-Konfiguration

Sie sollten Ihren Dolmetscher auswählen und auf die letzte Schaltfläche klicken. Dies sollte dieses Fenster öffnen:

Konfiguration der Interpreterpfade

Wenn Sie nun auf das Plus-Symbol klicken, sollten Sie in der Lage sein, Ihre eigenen Pfade für Bibliotheken hinzuzufügen.


2
Dies ist ein gutes Beispiel dafür, warum das Geben von Anweisungen mit der Befehlszeile einfacher ist als mit GUIs.
Javier Rivera

Vielen Dank. Ist dies die Möglichkeit, Pfade für Binärbibliotheken und Python-Module hinzuzufügen? Oder sollten Python-Module zum "Quellstamm" hinzugefügt werden?
Karnivaurus

1
Beide. Sie sollten Source Root nur verwenden, wenn Sie Änderungen an diesen Modulen vornehmen möchten (Sie müssen es dann nicht zu Source Root hinzufügen, um es zu vervollständigen, zu dokumentieren oder zur Quelle zu gehen).
Javier Rivera

5

Vom Ubuntu-Launcher gestartete Programme lesen nicht.bashrc . Alternativ zum Festlegen der Pfade in PyCharm können Sie PyCharm einfach über eine Bash-Shell starten, um Zugriff auf die von Ihnen festgelegten Umgebungsvariablen zu erhalten .bashrc.


Gibt es eine Möglichkeit, Programme dazu zu bringen, die .bash_rc-Datei zu lesen, wenn sie vom Launcher aus gestartet werden?
User007

0

Öffnen Sie die folgende Verknüpfung ( Ctrl+ Alt+ S) und klicken Sie auf (Projekt: xxxx). Wählen Sie nun (Projektstruktur) und wählen Sie ( /home/yourUser/PycharmProjects/XXXX/venv/bin) und klicken Sie mit der rechten Maustaste (Ausgeschlossen) oder ( Alt+ E).

Klicken Sie nun auf (+ Inhaltsstamm hinzufügen) und prüfen Sie, ob es auf den folgenden Speicherort zeigt ( /home/ yourUser/PycharmProjects/XXXXX/venv/bin). Klicken Sie dann auf OK. Schließen Sie nun die IDE und öffnen Sie sie erneut.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.