PYTHONPATH to zmienna środowiskowa, której wartością jest lista katalogów. Raz ustawiony, jest używany przez Python do wyszukiwania importowanych modułów, wraz z innymi standardowymi. oraz katalogi bibliotek innych firm wymienione w „sys.path” Pythona.
Jak każda inna zmienna środowiskowa, możesz ją wyeksportować w powłoce lub w ~ / .bashrc, patrz tutaj . Możesz zapytać os.environ ['PYTHONPATH'] o jego wartość w Pythonie, jak pokazano poniżej:
$ python3 -c "import os, sys; print(os.environ['PYTHONPATH']); print(sys.path) if 'PYTHONPATH' in sorted(os.environ) else print('PYTHONPATH is not defined')"
JEŻELI zdefiniowano w powłoce jako
$ export PYTHONPATH=$HOME/Documents/DjangoTutorial/mysite
TO wynik =>
/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']
Wynik ELSE =>
PYTHONPATH is not defined
Aby ustawić PYTHONPATH na wiele ścieżek, zobacz tutaj .
Zauważ, że ścieżkę wyszukiwania można dodać lub usunąć za pomocą sys.path.insert (), del lub remove () w czasie wykonywania, ale NIE poprzez os.environ []. Przykład:
>>> 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']
>>>
Podsumowując, PYTHONPATH to jeden ze sposobów określania ścieżek wyszukiwania w Pythonie dla importowanych modułów w sys.path. Możesz również zastosować operacje na liście bezpośrednio do sys.path bez pomocy PYTHONPATH.
PYTHONPATH
. Użyjsys.path
do tego.