Python tìm kiếm các mô-đun ở đâu?
Nhìn thấy
- ;
- .
Giả sử chúng ta đã viết một mô-đun Python và lưu nó dưới dạng
def func[]: print["Running useful function"]2, trong một thư mục có tên là
def func[]: print["Running useful function"]3
Chúng tôi cũng có một tập lệnh có tên là
def func[]: print["Running useful function"]4 trong một thư mục có tên là
def func[]: print["Running useful function"]5
Chúng tôi muốn có thể
def func[]: print["Running useful function"]6 mã trong
def func[]: print["Running useful function"]2 để sử dụng trong
def func[]: print["Running useful function"]4. Vì vậy, chúng tôi muốn có thể đưa dòng của anh ấy vào
def func[]: print["Running useful function"]4
________số 8
Mô-đun và tập lệnh có thể trông như thế này
Nội dung của
import a_module a_module.func[]0
def func[]: print["Running useful function"]
Nội dung của
import a_module a_module.func[]1
import a_module a_module.func[]
Hiện tại,
def func[]: print["Running useful function"]4 sẽ thất bại với
def func[]: print["Running useful function"]4
Khi Python chạm vào dòng
import a_module a_module.func[]3, nó sẽ cố gắng tìm một gói hoặc mô-đun có tên là
import a_module a_module.func[]4. Một gói là một thư mục chứa các mô-đun, nhưng bây giờ chúng tôi sẽ chỉ xem xét các mô-đun. Mô-đun là một tệp có phần mở rộng phù hợp, chẳng hạn như
import a_module a_module.func[]5. Vì vậy, Python đang tìm kiếm một tệp
def func[]: print["Running useful function"]2 và không tìm thấy nó
Bạn sẽ thấy hiệu ứng tương tự tại bảng điều khiển Python tương tác hoặc trong IPython
def func[]: print["Running useful function"]9
Python tìm kiếm các mô-đun trong “sys. con đường"
Python có một thuật toán đơn giản để tìm một mô-đun có tên đã cho, chẳng hạn như
import a_module a_module.func[]4. Nó tìm kiếm một tệp có tên là
def func[]: print["Running useful function"]2 trong các thư mục được liệt kê trong biến
import a_module a_module.func[]9
def func[]: print["Running useful function"]3
Tệp
def func[]: print["Running useful function"]2 nằm trong thư mục
def func[]: print["Running useful function"]3 và thư mục này không có trong danh sách
import a_module a_module.func[]9
Bởi vì
import a_module a_module.func[]9 chỉ là một danh sách Python, giống như bất kỳ danh sách nào khác, chúng tôi có thể thực hiện thao tác nhập bằng cách thêm thư mục
def func[]: print["Running useful function"]3 vào danh sách
def func[]: print["Running useful function"]9
Có nhiều cách khác nhau để đảm bảo một thư mục luôn nằm trong danh sách Python
import a_module a_module.func[]9 khi bạn chạy Python, bao gồm
- đặt thư mục vào nội dung của biến môi trường
def func[]: print["Running useful function"]
46 – Sử dụng PYTHONPATH - biến mô-đun thành một phần của gói có thể cài đặt và cài đặt nó – xem. tạo một gói Python
Là một bản hack thô sơ, bạn cũng có thể đặt thư mục
def func[]: print["Running useful function"]3 của mình trên Python
import a_module a_module.func[]9 ở đầu các tệp cần nó
Nội dung của
def func[]: print["Running useful function"]49
def func[]: print["Running useful function"]5
sau đó
def func[]: print["Running useful function"]6
def func[]: print["Running useful function"]90 đơn giản ở trên sẽ chỉ hoạt động khi chạy tập lệnh từ thư mục chứa thư mục con
def func[]: print["Running useful function"]3. Ví dụ
def func[]: print["Running useful function"]9
Điều này là do thư mục
def func[]: print["Running useful function"]3 mà chúng tôi đã chỉ định là một đường dẫn tương đối và do đó Python tìm thư mục
def func[]: print["Running useful function"]3 trong thư mục làm việc hiện tại
Làm cách nào để thêm đường dẫn đến PYTHONPATH?
Mở Terminal. gõ mở. bash_profile. Trong tệp văn bản bật lên, hãy thêm dòng này vào cuối. xuất PYTHONPATH=$PYTHONPATH. foo/bar. .
Trên Windows, với Python 2. 7 vào thư mục cài đặt Python
Mở gói Lib/trang web
Thêm một ví dụ. tập tin trống pth vào thư mục này
Thêm đường dẫn cần thiết vào tệp, mỗi đường dẫn trên mỗi dòng
Đường dẫn [__ tệp __] trong Python là gì?
Biến __file__. __file__ là biến chứa đường dẫn đến mô-đun hiện đang được nhập . Python tạo một biến __file__ cho chính nó khi nó chuẩn bị nhập một mô-đun.
Đường dẫn mô-đun Python ở đâu?
Nhận vị trí của một mô-đun cụ thể trong Python bằng mô-đun OS. Đối với một mô-đun Python thuần túy, chúng ta có thể định vị nguồn của nó bằng cách module_name. __file__ . Điều này sẽ trả về vị trí mà mô-đun.