Câu trả lời:
Bạn không đặt PYTHONPATH
, bạn thêm mục vào sys.path
. Đó là danh sách các thư mục nên được tìm kiếm cho các gói Python, vì vậy bạn có thể chỉ cần nối các thư mục của mình vào danh sách đó.
sys.path.append('/path/to/whatever')
Trên thực tế, sys.path
được khởi tạo bằng cách tách giá trị của PYTHONPATH
ký tự phân cách đường dẫn ( :
trên các hệ thống giống Linux, ;
trên Windows).
Bạn cũng có thể thêm các thư mục bằng cách sử dụng site.addsitedir
và phương pháp đó cũng sẽ tính đến .pth
các tệp hiện có trong các thư mục bạn chuyển. (Đó sẽ không phải là trường hợp với các thư mục bạn chỉ định trong PYTHONPATH
.)
Bạn có thể lấy và đặt các biến môi trường thông qua os.environ
:
import os
user_home = os.environ["HOME"]
os.environ["PYTHONPATH"] = "..."
Nhưng vì trình thông dịch của bạn đã chạy, điều này sẽ không có tác dụng. Bạn tốt hơn nên sử dụng
import sys
sys.path.append("...")
là mảng mà bạn PYTHONPATH
sẽ được chuyển đổi thành khi khởi động trình thông dịch.
Nếu bạn đặt sys.path.append('dir/to/path')
mà không kiểm tra, nó đã được thêm vào, bạn có thể tạo một danh sách dài sys.path
. Đối với điều đó, tôi khuyên bạn nên:
import sys
import os # if you want this directory
try:
sys.path.index('/dir/path') # Or os.getcwd() for this directory
except ValueError:
sys.path.append('/dir/path') # Or os.getcwd() for this directory
bạn có thể đặt PYTHONPATH
, bằng cách os.environ['PATHPYTHON']=/some/path
, sau đó bạn cần gọi os.system('python')
khởi động lại trình bao python để làm cho đường dẫn mới được thêm vào có hiệu quả.
os.system()
không "khởi động lại trình bao python", nó bắt đầu một phiên bản Python tương tác mới. Khi bạn quay lại từ đó, bạn sẽ quay lại tập lệnh gọi.
sys.path.insert(0, '/path/to/whatever')
.