PYTHONPATH ist eine Umgebungsvariable, deren Wert eine Liste von Verzeichnissen ist. Einmal festgelegt, wird es von Python verwendet, um nach importierten Modulen zu suchen, zusammen mit anderen Standardmodulen. und Bibliotheksverzeichnisse von Drittanbietern, die in Pythons "sys.path" aufgeführt sind.
Wie alle anderen Umgebungsvariablen können Sie sie entweder in der Shell oder in ~ / .bashrc exportieren (siehe hier) . Sie können os.environ ['PYTHONPATH'] nach seinem Wert in Python abfragen, wie unten gezeigt:
$ python3 -c "import os, sys; print(os.environ['PYTHONPATH']); print(sys.path) if 'PYTHONPATH' in sorted(os.environ) else print('PYTHONPATH is not defined')"
IF in Shell definiert als
$ export PYTHONPATH=$HOME/Documents/DjangoTutorial/mysite
DANN Ergebnis =>
/home/Documents/DjangoTutorial/mysite
['', '/home/Documents/DjangoTutorial/mysite', '/usr/local/lib/python37.zip', '/usr/local/lib/python3.7', '/usr/local/lib/python3.7/lib-dynload', '/usr/local/lib/python3.7/site-packages']
ELSE Ergebnis =>
PYTHONPATH is not defined
Informationen zum Einstellen von PYTHONPATH auf mehrere Pfade finden Sie hier .
Beachten Sie, dass Sie einen Suchpfad zur Laufzeit über sys.path.insert (), del oder remove () hinzufügen oder löschen können, jedoch NICHT über os.environ []. Beispiel:
>>> os.environ['PYTHONPATH']="$HOME/Documents/DjangoTutorial/mysite"
>>> 'PYTHONPATH' in sorted(os.environ)
True
>>> sys.path // but Not there
['', '/usr/local/lib/python37.zip', '/usr/local/lib/python3.7', '/usr/local/lib/python3.7/lib-dynload', '/usr/local/lib/python3.7/site-packages']
>>> sys.path.insert(0,os.environ['PYTHONPATH'])
>>> sys.path // It's there
['$HOME/Documents/DjangoTutorial/mysite', '', '/usr/local/lib/python37.zip', '/usr/local/lib/python3.7', '/usr/local/lib/python3.7/lib-dynload', '/usr/local/lib/python3.7/site-packages']
>>>
Zusammenfassend ist PYTHONPATH eine Möglichkeit, die Python-Suchpfade für importierte Module in sys.path anzugeben. Sie können Listenoperationen auch ohne Hilfe von PYTHONPATH direkt auf sys.path anwenden.
PYTHONPATH
. Verwenden Siesys.path
dafür.