PYTHONPATH adalah variabel lingkungan yang nilainya adalah daftar direktori. Setelah diatur, digunakan oleh Python untuk mencari modul yang diimpor, bersama dengan std lainnya. dan direktori perpustakaan pihak ketiga yang tercantum di "sys.path" Python.
Seperti variabel lingkungan lainnya, Anda dapat mengekspornya dalam shell atau di ~ / .bashrc, lihat di sini . Anda dapat meminta os.environ ['PYTHONPATH'] untuk nilainya dalam Python seperti yang ditunjukkan di bawah ini:
$ python3 -c "import os, sys; print(os.environ['PYTHONPATH']); print(sys.path) if 'PYTHONPATH' in sorted(os.environ) else print('PYTHONPATH is not defined')"
JIKA didefinisikan dalam shell sebagai
$ export PYTHONPATH=$HOME/Documents/DjangoTutorial/mysite
MAKA hasil =>
/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']
Hasil LAIN =>
PYTHONPATH is not defined
Untuk mengatur PYTHONPATH ke beberapa jalur, lihat di sini .
Perhatikan bahwa seseorang dapat menambah atau menghapus jalur pencarian melalui sys.path.insert (), del atau hapus () pada saat run-time, tetapi TIDAK melalui os.environ []. Contoh:
>>> 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']
>>>
Singkatnya, PYTHONPATH adalah salah satu cara menentukan jalur pencarian Python untuk modul yang diimpor di sys.path. Anda juga dapat menerapkan operasi daftar langsung ke sys.path tanpa bantuan PYTHONPATH.
PYTHONPATH
. Gunakansys.path
untuk itu.