PYTHONPATH è una variabile d'ambiente il cui valore è un elenco di directory. Una volta impostato, viene utilizzato da Python per cercare moduli importati, insieme ad altri standard. e directory di librerie di terze parti elencate in "sys.path" di Python.
Come qualsiasi altra variabile d'ambiente, puoi esportarla in shell o in ~ / .bashrc, vedi qui . Puoi eseguire una query su os.environ ['PYTHONPATH'] per il suo valore in Python come mostrato di seguito:
$ python3 -c "import os, sys; print(os.environ['PYTHONPATH']); print(sys.path) if 'PYTHONPATH' in sorted(os.environ) else print('PYTHONPATH is not defined')"
Se definito nella shell come
$ export PYTHONPATH=$HOME/Documents/DjangoTutorial/mysite
POI risultato =>
/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']
Risultato ELSE =>
PYTHONPATH is not defined
Per impostare PYTHONPATH su più percorsi, vedere qui .
Si noti che è possibile aggiungere o eliminare un percorso di ricerca tramite sys.path.insert (), del o remove () in fase di esecuzione, ma NON tramite os.environ []. Esempio:
>>> 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']
>>>
In breve, PYTHONPATH è un modo per specificare i percorsi di ricerca Python per i moduli importati in sys.path. È inoltre possibile applicare le operazioni dell'elenco direttamente a sys.path senza l'aiuto di PYTHONPATH.
PYTHONPATH
. Usasys.path
per quello.