PYTHONPATH là một biến môi trường có giá trị là danh sách các thư mục. Sau khi thiết lập, nó được Python sử dụng để tìm kiếm các mô-đun đã nhập, cùng với các tiêu chuẩn khác. và thư mục thư viện của bên thứ 3 được liệt kê trong "sys.path" của Python.
Như bất kỳ biến môi trường nào khác, bạn có thể xuất nó trong shell hoặc trong ~ / .bashrc, xem tại đây . Bạn có thể truy vấn os.envir ['PYTHONPATH'] để biết giá trị của nó trong Python như dưới đây:
$ python3 -c "import os, sys; print(os.environ['PYTHONPATH']); print(sys.path) if 'PYTHONPATH' in sorted(os.environ) else print('PYTHONPATH is not defined')"
NẾU được định nghĩa trong shell là
$ export PYTHONPATH=$HOME/Documents/DjangoTutorial/mysite
THEN kết quả =>
/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']
Kết quả ELSE =>
PYTHONPATH is not defined
Để đặt PYTHONPATH thành nhiều đường dẫn, xem tại đây .
Lưu ý rằng người ta có thể thêm hoặc xóa đường dẫn tìm kiếm thông qua sys.path.insert (), del hoặc remove () trong thời gian chạy, nhưng KHÔNG thông qua os.envir []. Thí dụ:
>>> 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']
>>>
Tóm lại, PYTHONPATH là một cách chỉ định (các) đường dẫn tìm kiếm Python cho các mô-đun đã nhập trong sys.path. Bạn cũng có thể áp dụng các hoạt động danh sách trực tiếp cho sys.path mà không cần sự trợ giúp của PYTHONPATH.
PYTHONPATH
. Sử dụngsys.path
cho điều đó.