$PYTHONPATH und sys.path scheinen nicht übereinzustimmen

$PYTHONPATH und sys.path scheinen nicht übereinzustimmen

Ich möchte einen Ordner dauerhaft hinzufügen, sys.pathaber 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.pathidentisch 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, .bashrceinen Pfad hinzuzufügen, $PYTHONPATHsodass 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 ^PYTHONnichts zurück.

Wie wird es also sys.pathausgefüllt und wie kann ich einen Ordner dauerhaft hinzufügen?

Antwort1

sys.pathin Python ist eine „Liste von Zeichenfolgen, die den Suchpfad für Module angibt. Initialisiert aus der Umgebungsvariable PYTHONPATHplus einem installationsabhängigen Standard.“ (entnommen ausdie Python-Onlinedokumentation).

Damit letzteres sys.pathvon 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 pythonInterpreter 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

verwandte Informationen