PYTHONPATH değeri bir dizin listesi olan bir ortam değişkenidir. Ayarlandıktan sonra, diğer standartlarla birlikte içe aktarılan modülleri aramak için Python tarafından kullanılır. ve Python'un "sys.path" dosyasında listelenen 3. taraf kütüphane dizinleri.
Diğer ortam değişkenleri gibi, onu kabukta veya ~ / .bashrc'de dışa aktarabilirsiniz, buraya bakın . Os.environ ['PYTHONPATH'] 'yi Python'daki değeri için aşağıda gösterildiği gibi sorgulayabilirsiniz:
$ python3 -c "import os, sys; print(os.environ['PYTHONPATH']); print(sys.path) if 'PYTHONPATH' in sorted(os.environ) else print('PYTHONPATH is not defined')"
Kabukta EĞER
$ export PYTHONPATH=$HOME/Documents/DjangoTutorial/mysite
SONRA sonuç =>
/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 sonucu =>
PYTHONPATH is not defined
PYTHONPATH değerini birden çok yola ayarlamak için buraya bakın .
Çalışma zamanında sys.path.insert (), del veya remove () ile bir arama yolu ekleyebilir veya silebilir, ancak os.environ [] aracılığıyla DEĞİLDİR. Misal:
>>> 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']
>>>
Özetle, PYTHONPATH, sys.path dosyasına içe aktarılan modüller için Python arama yollarını belirtmenin bir yoludur. Liste işlemlerini PYTHONPATH yardımı olmadan doğrudan sys.path'e de uygulayabilirsiniz.
PYTHONPATH
. Bunun için kullanınsys.path
.