Mục đầu tiên trong đường dẫn tìm kiếm mô-đun là thư mục chứa tập lệnh đầu vào, nếu có. Mặt khác, mục nhập đầu tiên là thư mục hiện tại, đây là trường hợp khi thực thi trình bao tương tác, lệnh hoặc mô-đun
Biến môi trường thường được dùng để thêm thư mục vào đường dẫn tìm kiếm. Nếu tìm thấy biến môi trường này thì nội dung sẽ được thêm vào đường dẫn tìm kiếm mô-đun
Ghi chú
sẽ ảnh hưởng đến tất cả các phiên bản/môi trường Python đã cài đặt. Hãy cảnh giác với cài đặt này trong cấu hình trình bao của bạn hoặc các biến môi trường toàn cầu. Mô-đun cung cấp nhiều kỹ thuật sắc thái hơn như được đề cập bên dưới
Các mục tiếp theo được thêm vào là các thư mục chứa các mô-đun Python tiêu chuẩn cũng như bất kỳ s nào mà các mô-đun này phụ thuộc vào. Các mô-đun mở rộng là các tệp .pyd
trên Windows và tệp .so
trên các nền tảng khác. Thư mục chứa các mô-đun Python độc lập với nền tảng được gọi là prefix
. Thư mục với các mô-đun mở rộng được gọi là sys.path
0
Biến môi trường có thể được sử dụng để đặt các vị trí prefix
và sys.path
0. Mặt khác, các thư mục này được tìm thấy bằng cách sử dụng tệp thực thi Python làm điểm bắt đầu và sau đó tìm kiếm các tệp và thư mục 'mốc' khác nhau. Lưu ý rằng mọi liên kết tượng trưng đều được tuân theo để vị trí thực thi Python thực được sử dụng làm điểm bắt đầu tìm kiếm. Vị trí thực thi Python được gọi là sys.path
4
Sau khi xác định được sys.path
4, thư mục prefix
được tìm thấy bằng cách tìm kiếm đầu tiên cho sys.path
7 [sys.path
8]. Trên Windows, kho lưu trữ zip được tìm kiếm trong sys.path
4 và trên Unix, kho lưu trữ dự kiến sẽ có trong -c
0. Lưu ý rằng vị trí lưu trữ zip dự kiến sẽ được thêm vào đường dẫn tìm kiếm mô-đun ngay cả khi kho lưu trữ không tồn tại. Nếu không tìm thấy kho lưu trữ nào, Python trên Windows sẽ tiếp tục tìm kiếm prefix
bằng cách tìm kiếm -c
2. Python trên Unix sẽ tìm kiếm -c
3 [-c
4]. Trên Windows, prefix
và sys.path
0 giống nhau, tuy nhiên trên các nền tảng khác, -c
7 [-c
8] được tìm kiếm và sử dụng làm điểm neo cho sys.path
0. Trên một số nền tảng -c
0 có thể là -m
1 hoặc một giá trị khác, hãy xem và
Sau khi được tìm thấy, prefix
và sys.path
0 có sẵn tại và tương ứng
Cuối cùng, mô-đun được xử lý và các thư mục -m
9 được thêm vào đường dẫn tìm kiếm mô-đun. Một cách phổ biến để tùy chỉnh đường dẫn tìm kiếm là tạo các mô-đun PYTHONPATH
0 hoặc PYTHONPATH
1 như được mô tả trong tài liệu mô-đun
Ghi chú
Một số tùy chọn dòng lệnh có thể ảnh hưởng đến tính toán đường dẫn. Xem , , và để biết thêm chi tiết
môi trường ảo
Nếu Python được chạy trong môi trường ảo [như được mô tả tại ] thì prefix
và sys.path
0 dành riêng cho môi trường ảo
Nếu tệp PYTHONPATH
9 được tìm thấy bên cạnh tệp thực thi chính hoặc trong thư mục cao hơn tệp thực thi một cấp, các biến thể sau sẽ được áp dụng
Nếu
sys.path
4 là một đường dẫn tuyệt đối và không được đặt, thì đường dẫn này được sử dụng thay cho đường dẫn đến tệp thực thi chính khi suy raprefix
vàsys.path
0
tệp _pth
Để ghi đè hoàn toàn, hãy tạo tệp PYTHONPATH
5 có cùng tên với thư viện dùng chung hoặc tệp thực thi [PYTHONPATH
6 hoặc PYTHONPATH
7]. Đường dẫn thư viện dùng chung luôn được biết trên Windows, tuy nhiên, đường dẫn này có thể không khả dụng trên các nền tảng khác. Trong tệp PYTHONPATH
5 chỉ định một dòng cho mỗi đường dẫn để thêm vào. Tệp dựa trên tên thư viện dùng chung sẽ ghi đè tệp dựa trên tệp thực thi, cho phép hạn chế đường dẫn đối với bất kỳ chương trình nào đang tải thời gian chạy nếu muốn
Khi tệp tồn tại, tất cả các biến đăng ký và môi trường sẽ bị bỏ qua, chế độ cách ly được bật và không được nhập trừ khi một dòng trong tệp chỉ định site
1. Các đường dẫn và dòng trống bắt đầu bằng site
2 bị bỏ qua. Mỗi đường dẫn có thể là tuyệt đối hoặc tương đối với vị trí của tệp. Các câu lệnh nhập khác với site
không được phép và mã tùy ý không thể được chỉ định
Lưu ý rằng các tệp site
4 [không có dấu gạch dưới ở đầu] sẽ được mô-đun xử lý bình thường khi site
1 đã được chỉ định
Python nhúng
Nếu Python được nhúng trong ứng dụng khác và cấu trúc có thể được sử dụng để khởi tạo Python. Các chi tiết cụ thể của đường dẫn được mô tả tại. Ngoài ra, cái cũ hơn có thể được sử dụng để bỏ qua việc khởi tạo đường dẫn tìm kiếm mô-đun