Ich versuche, ein Modul aus einem bestimmten Verzeichnis zu importieren.
Das Problem ist, dass, wenn ich sys.path.append(mod_directory)
den Pfad mod_directory
anhänge und dann den Python-Interpreter öffne, das Verzeichnis am Ende der Liste sys.path hinzugefügt wird. Wenn ich die PYTHONPATH
Variable exportiere , bevor ich den Python-Interpreter öffne, wird das Verzeichnis am Anfang der Liste hinzugefügt. Im letzteren Fall kann ich das Modul importieren, im ersteren jedoch nicht.
Kann jemand erklären, warum dies geschieht, und mir eine Lösung geben, um das mod_directory
am Anfang in einem Python-Skript hinzuzufügen ?
python
mechanize
python-import
pythonpath
Unverfälschte Vorstellungskraft
quelle
quelle
site
Modul ausprobiert .Antworten:
Dies funktioniert wie dokumentiert. Alle in angegebenen Pfade
PYTHONPATH
werden als normal nach dem Arbeitsverzeichnis, jedoch vor den vom Standardinterpreter bereitgestellten Pfaden dokumentiert.sys.path.append()
wird an den vorhandenen Pfad angehängt. Sehen Sie hier und hier . Wenn ein bestimmtes Verzeichnis an erster Stelle stehen soll, fügen Sie es einfach am Kopf von sys.path ein:Allerdings gibt es normalerweise bessere Möglichkeiten, Importe zu verwalten, als sie direkt zu verwenden
PYTHONPATH
oder zu manipulierensys.path
. Siehe zum Beispiel die Antworten auf diese Frage .quelle
Du könntest benutzen:
quelle
Was mich betrifft, muss ich mich auf meinen Python-Pfad einlassen. Ich kann den Pfad zur Datei
/home/xy/.bashrc
durch Hinzufügen hinzufügenexport PYTHONPATH=/home/xy/caffe-master/python:$PYTHONPATH
.zu meiner
/home/xy/.bashrc
Datei.Aber wenn ich Pycharm benutze, ist der Pfad immer noch nicht in.
So kann ich der
PYTHONPATH
Variablen einen Pfad hinzufügen , indem ich -> Konfiguration bearbeiten ausführe.quelle
Das vorübergehende Ändern von Verzeichnissen eignet sich gut zum Importieren von:
quelle
Wenn Sie ein Python-Skript unter Powershell unter Windows ausführen, sollte dies funktionieren:
quelle