
Ich möchte einen Ordner dauerhaft hinzufügen, sys.path
aber es funktioniert nicht.
Auf meinem Debian Stretch, wenn ich ausführe:
$ echo $PYTHONPATH
es sieht leer aus
Gleichzeitig gibt es, wenn ich den Inhalt von drucke , 10 verschiedene Pfade, die nicht mit denen in (und offensichtlich auch in ) sys.path
identisch sind . Wie lässt sich das erklären?$PATH
$PYTHONPATH
(Ich musste eine virtuelle Umgebung für ein Framework erstellen, aber ich glaube nicht, dass ich sie gerade verwende, also hat sie wahrscheinlich nichts damit zu tun, aber ich bin mit dem Konzept nicht vertraut, also übersehe ich vielleicht etwas.)
Außerdem habe ich versucht, .bashrc
einen Pfad hinzuzufügen, $PYTHONPATH
sodass ich die folgende Zeile kenne:
PYTHONPATH=$PYTHONPATH:~/bin
Nach dem Neustart funktioniert es, ich meine, $PYTHONPATH enthält es, aber es ändert sich nichts für sys.path
.
Gibt außerdem $ env | grep ^PYTHON
nichts zurück.
Wie wird es also sys.path
ausgefüllt und wie kann ich einen Ordner dauerhaft hinzufügen?
Antwort1
sys.path
in Python ist eine „Liste von Zeichenfolgen, die den Suchpfad für Module angibt. Initialisiert aus der Umgebungsvariable PYTHONPATH
plus einem installationsabhängigen Standard.“ (entnommen ausdie Python-Onlinedokumentation).
Damit letzteres sys.path
von beeinflusst werden kann PYTHONPATH
, muss es sich um eine Umgebungsvariable handeln. Wenn es keine Umgebungsvariable, sondern nur eine Shell-Variable ist, ist sie für den python
Interpreter nicht sichtbar. Sie machen sie zu einer Umgebungsvariable, indem Sie sie exportieren, nachdem Sie ihren Wert festgelegt haben, oder gleichzeitig, wie in
export PYTHONPATH=/some/path:/goes/here