Trong bài học này, bạn sẽ tìm hiểu về đường dẫn tìm kiếm mô-đun. Tiếp tục với ví dụ ở bài trước, hãy xem điều gì sẽ xảy ra khi Python thực thi câu lệnh sau
>>>
>>> import mod
>>> mod.a
[100, 200, 300]
>>> mod.s
'Computers are useless. They can only give you answers.'
Khi trình thông dịch thực thi câu lệnh
>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
4 ở trên, nó sẽ tìm kiếm >>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
5 trong danh sách các thư mục được tập hợp từ các nguồn sau- Thư mục chạy tập lệnh đầu vào hoặc thư mục hiện tại nếu trình thông dịch đang được chạy tương tác
- Danh sách các thư mục chứa trong biến môi trường
6, nếu nó được đặt. [Định dạng cho>>> import sys >>> sys.path ['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
6 phụ thuộc vào hệ điều hành nhưng phải bắt chước biến môi trường của>>> import sys >>> sys.path ['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
8. ]>>> import sys >>> sys.path ['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
- Danh sách các thư mục phụ thuộc vào cài đặt được định cấu hình tại thời điểm Python được cài đặt
Đường dẫn tìm kiếm kết quả có thể truy cập được trong biến Python
>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
0, được lấy từ một mô-đun có tên >>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
1>>>
>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
Ghi chú. Nội dung chính xác của
>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
0 phụ thuộc vào cài đặt. Khối mã trên gần như chắc chắn sẽ trông hơi khác trên máy tính của bạn. Hệ điều hành được sử dụng trong bài học này là macOS. Nếu bạn muốn xem cấu trúc đường dẫn trông như thế nào trong môi trường Windows, hãy xem bài viết gốc mà khóa học này dựa trênVì vậy, để đảm bảo rằng mô-đun của bạn được tìm thấy, bạn cần thực hiện một trong các thao tác sau
- Đặt
5 vào thư mục chứa tập lệnh đầu vào hoặc thư mục hiện tại nếu tương tác>>> import sys >>> sys.path ['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
- Sửa đổi biến môi trường
6 để chứa thư mục chứa>>> import sys >>> sys.path ['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
5 trước khi bắt đầu trình thông dịch. Hoặc đặt>>> import sys >>> sys.path ['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
5 vào một trong các thư mục đã có trong biến>>> import sys >>> sys.path ['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
6>>> import sys >>> sys.path ['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
- Đặt
5 vào một trong các thư mục phụ thuộc vào cài đặt mà bạn có thể có hoặc không có quyền ghi vào, tùy thuộc vào hệ điều hành>>> import sys >>> sys.path ['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
Ngoài ra còn có một tùy chọn bổ sung. Bạn có thể đặt tệp mô-đun vào bất kỳ thư mục nào bạn chọn và sau đó sửa đổi
>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
0 trong thời gian chạy để nó chứa thư mục đó. Ví dụ, trong trường hợp này, bạn có thể đặt >>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
5 trong thư mục >>> sys.path.append[r'/Users/chris/ModulesAndPackages']
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages', '/Users/chris/ModulesAndPackages']
>>> import mod
>>> mod.s
'Computers are useless. They can only give you answers.'
1 và sau đó đưa ra các câu lệnh sau>>>
>>> sys.path.append[r'/Users/chris/ModulesAndPackages']
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages', '/Users/chris/ModulesAndPackages']
>>> import mod
>>> mod.s
'Computers are useless. They can only give you answers.'
Khi bạn đã nhập một mô-đun, bạn có thể xác định vị trí tìm thấy mô-đun bằng thuộc tính
>>> sys.path.append[r'/Users/chris/ModulesAndPackages']
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages', '/Users/chris/ModulesAndPackages']
>>> import mod
>>> mod.s
'Computers are useless. They can only give you answers.'
2 của mô-đun>>>
>>> import mod
>>> mod.__file__
'/Users/chris/ModulesAndPackages/mod.py'
>>> import re
>>> re.__file__
'/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/re.py'
Phần thư mục của
>>> sys.path.append[r'/Users/chris/ModulesAndPackages']
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages', '/Users/chris/ModulesAndPackages']
>>> import mod
>>> mod.s
'Computers are useless. They can only give you answers.'
2 phải là một trong các thư mục trong >>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
000. 00 Trong video này, bạn sẽ khám phá đường dẫn tìm kiếm mô-đun. Vì vậy, bạn có thể nhập một mô-đun từ đâu?
00. 08 Khi trình thông dịch thực thi câu lệnh
>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
4, nó sẽ tìm kiếm tệp đó. Trong ví dụ của bạn ở đây, đó là >>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
5. Nó sẽ tìm kiếm cái đó trong một danh sách các thư mục. Các khả năng là thư mục hiện tại, nghĩa là tập lệnh đầu vào được chạy từ đâu và nó cũng tìm kiếm trong biến môi trường >>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
6, có danh sách các thư mục00. 29 Có các liên kết bên dưới video này cung cấp cho bạn thêm một chút chi tiết về
>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
6 nếu bạn chọn tìm hiểu sâu hơn một chút. Khi bạn cài đặt Python, cũng có một tập hợp các thư mục được định cấu hình như một phần của quá trình cài đặt Python đó. Khi bạn nhập từ các mô-đun tích hợp, đó là nơi mã đó đến từ đó00. 47 Và có một cách để xem tất cả những thứ này, để xem danh sách các thư mục này. Hãy để tôi chỉ cho bạn điều đó trong mã. Ngay bây giờ, bạn có thể thấy rằng trong thiết bị đầu cuối mà tôi đang truy cập, tôi hiện đang ở trong một thư mục có tên
>>> sys.path.append[r'/Users/chris/ModulesAndPackages']
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages', '/Users/chris/ModulesAndPackages']
>>> import mod
>>> mod.s
'Computers are useless. They can only give you answers.'
901. 02 Và bên trong thư mục đó, có tệp
>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
5. Nếu tôi khởi động trình thông dịch Python, nó sẽ khởi động trình thông dịch đó từ bên trong thư mục hiện tại này01. 13 Nếu bạn đã lưu tệp
>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
5 của mình trong cùng thư mục với thư mục hiện tại, bạn có thể nhập >>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
4 và >>> import mod
>>> mod.__file__
'/Users/chris/ModulesAndPackages/mod.py'
>>> import re
>>> re.__file__
'/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/re.py'
3. Tệp >>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
5 ở ngay đó01. 24 tuyệt vời. Vì vậy, bây giờ có sẵn
>>> import mod
>>> mod.__file__
'/Users/chris/ModulesAndPackages/mod.py'
>>> import re
>>> re.__file__
'/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/re.py'
5, có sẵn >>> import mod
>>> mod.__file__
'/Users/chris/ModulesAndPackages/mod.py'
>>> import re
>>> re.__file__
'/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/re.py'
6. Được chứ. Nếu bạn muốn xem tất cả các địa điểm hiện tại có thể được nhập, thì có một công cụ gọi là mô-đun >>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
1 là một phần của thư viện tích hợp sẵn mà bạn có thể nhập01. 39 Và nó có thể hiển thị cho bạn
>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
6 hiện tại và các thư mục đã được thiết lập khi cài đặt Python. >>> import mod
>>> mod.__file__
'/Users/chris/ModulesAndPackages/mod.py'
>>> import re
>>> re.__file__
'/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/re.py'
9, là mô-đun bao gồm các tham số và chức năng dành riêng cho hệ thống mà bạn có thể truy cập. Và một trong số đó là >>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
001. 54 Vì vậy,
>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
0—sẽ hiển thị cho bạn một danh sách. Hy vọng rằng bạn có thể thấy điều đó ở đây với dấu ngoặc vuông. Và đây là tất cả các vị trí mà thông dịch viên của bạn sẽ tìm kiếm khi bạn nhập từ >>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
4 và sau đó tìm kiếm một mô-đun cụ thể mà bạn đang nhập02. 10 Đây là thư mục mặc định mà bạn đang ở—thư mục hiện tại—vì vậy nó sẽ tìm kiếm ngay tại đó. Sau đó, từ đó, nó chuyển sang phiên bản Python mà bạn đã cài đặt
02. 19 Đây là giao diện trên máy tính cụ thể của tôi ở đây, trên máy Mac, nơi nó đặt nó trong tệp
>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
03, nhưng điều đó có thể khác nhau tùy thuộc vào cài đặt là gì02. 27 Nó có thể nằm trong bản cài đặt Anaconda hoặc thứ gì đó khác trên bản cài đặt Windows. Nhưng bạn có thể thấy ở đây nhiều nơi mà nó sẽ tìm kiếm—những mô-đun đó
02. 37 Tôi sẽ rời khỏi đây
02. 40 Vì vậy, đó là tất cả các vị trí mà bạn có thể lưu tệp—trong thư mục hiện tại hoặc trong bất kỳ thư mục nào khác mà bạn thấy sau khi chạy
>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
002. 50 Nếu bạn muốn thêm địa điểm cho nó nhập được thì sao? . Để chứng minh điểm này, tôi sẽ làm cho đây không phải là thư mục hiện tại
03. 00 Tôi sẽ sử dụng lệnh thay đổi thư mục,
>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
05, và lệnh đó sẽ đưa tôi đến thư mục gốc của thư mục này. Và sau khi bạn đã hoàn thành việc đó, và bạn bắt đầu REPL của mình từ thư mục đó, nếu bạn nhập >>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
4 rồi sau đó là >>> import mod
>>> mod.__file__
'/Users/chris/ModulesAndPackages/mod.py'
>>> import re
>>> re.__file__
'/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/re.py'
3, nó sẽ báo rằng mô-đun đó không được tìm thấy—mô-đun đó hiện không có trong thư mục đó hoặc ở bất kỳ vị trí nào khác 03. 33 Vì vậy, bạn nên đặt tệp mô-đun của mình ở đâu?
03. 43 Bạn có thể đặt nó vào cùng thư mục mà tập lệnh đầu vào được viết vào, thư mục này thường được coi là thư mục hiện tại. Bạn có thể sửa đổi biến môi trường
>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
6 hoặc bạn có thể đặt nó vào một trong các thư mục đã có trong >>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
6 đó03. 56 Bạn cũng có thể đặt nó vào một trong các thư mục được cấu hình như một phần của quá trình cài đặt Python của bạn. Bây giờ, có một giải pháp khác có thể được thực hiện trong thời gian chạy. Trong trường hợp đó, bạn thực sự có thể sửa đổi danh sách
>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
0. Để làm điều đó, bạn sẽ sử dụng một câu lệnh >>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
45, giống như bạn sẽ phụ thuộc vào bất kỳ danh sách nào khác. Trong trường hợp này, tôi đang sử dụng một ví dụ về giao diện của nó trong môi trường Windows04. 18 Để tôi bảo bạn kiểm tra mã này
04. 21 Vì vậy, trong trường hợp cụ thể này, từ
>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
0 bạn có thể sử dụng >>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
45. Và như một đối số, bạn sẽ nhập vào một chuỗi thô, vì vậy bạn bắt đầu bằng >>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
48 và trích dẫn đơn [>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
49]04. 31 Bây giờ bạn cần đường dẫn thư mục, bạn chỉ cần gõ vào. Nhưng tôi thích sử dụng thủ thuật này. Tôi biết nó hoạt động trên Windows và Mac. Nếu bạn mở trình duyệt tệp hoặc Explorer trên Windows, bạn có thể kéo biểu tượng thư mục hoặc thư mục nếu muốn và thả biểu tượng đó vào cửa sổ đầu cuối
04. 51 Sau đó, nó thực sự sẽ in ra toàn bộ đường dẫn. Đóng dấu ngoặc kép của tôi ở đó. Vì vậy, những gì đã làm điều đó?
05. 05 Nếu bạn gõ
>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
52,05. 10 bây giờ nó có thể nhập nó vào. Và đây là tất cả những đối tượng là một phần của mô-đun
>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
5. Tuyệt quá. Tuy nhiên, bạn cần nhớ một điều, nếu bạn nối thêm các vị trí đó hoặc các thư mục đó để bạn nhập chúng vào, thì điều đó chỉ tồn tại trong phiên cụ thể đó05. 26 Vì vậy, nếu bạn thoát ra và bắt đầu lại và cố gắng nhập
>>> import mod
>>> mod.__file__
'/Users/chris/ModulesAndPackages/mod.py'
>>> import re
>>> re.__file__
'/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/re.py'
3,05. 33 nó không có sẵn. Bởi vì nếu bạn
>>> import mod
>>> mod.__file__
'/Users/chris/ModulesAndPackages/mod.py'
>>> import re
>>> re.__file__
'/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/re.py'
9 và sử dụng lại >>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
0,05. 40 bạn có thể thấy nó không còn nằm trong danh sách đó nữa. Vì vậy, đó sẽ cần phải là một phần của tập lệnh đầu vào của bạn, sau đó, bạn sẽ thêm
>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
57 và thư mục05. 49 Vì vậy, để lại cho bạn một vài sự lựa chọn. để thêm nó vào một trong những thư mục này hoặc khi bạn đang nhập, hãy đảm bảo rằng nó có sẵn trong thư mục hiện tại
06. 00 Hãy để tôi yêu cầu bạn sửa đổi
>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
0 một lần nữa. Trong ví dụ này, tôi sẽ chỉ gõ nó ra, nhưng bạn có thể làm theo một trong hai cách06. 09 Bây giờ trình thông dịch có thể tìm kiếm thư mục đó. Và tôi sẽ có bạn
>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
5206. 15 tuyệt vời. Một công cụ khác mà bạn có thể sử dụng là phương thức dunder cho mô-đun của bạn, đó là
>>> sys.path.append[r'/Users/chris/ModulesAndPackages']
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages', '/Users/chris/ModulesAndPackages']
>>> import mod
>>> mod.s
'Computers are useless. They can only give you answers.'
2, để xem vị trí tệp của mô-đun đó. Vì vậy, tập tin đó đến từ đây06. 32 Và tương tự, nếu bạn nhập, chẳng hạn, mô-đun biểu thức chính quy được tích hợp sẵn bởi
>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
61 và sau đó bạn thực hiện >>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
62, bạn cũng có thể thấy vị trí của mô-đun đó. Trong trường hợp này, đó là một trong những thứ được tạo khi cài đặt Python06. 53 Trong video tiếp theo, bạn sẽ tìm hiểu sâu hơn về câu nói
>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
4 đóPygator vào tháng 2. 15, 2020
Có thể làm cho con đường. append[] gọi vĩnh viễn trên đường dẫn python?
Chris Bailey Nhóm RP vào tháng 2. 15, 2020
Xin chào @Pygator, tôi đoán là tùy thuộc vào những gì bạn đang tìm kiếm. Có thể bổ sung biến môi trường PYTHONPATH. Tôi vừa thực hiện một thử nghiệm, trong đó tôi đã thêm một thư mục trên máy tính để bàn của mình vào PYTHONPATH và có thể nhập từ đó. Điều đó sẽ được thực hiện bên trong
>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
64 trên máy Mac và có thể là Linux. Nó có thể trông hơi khác một chút trên windows. Dưới đây là một số chi tiết. ngăn xếp chồng lên nhau. com/câu hỏi/3387695/add-to-python-path-mac-os-xNhưng tôi có lẽ sẽ bám vào các mục được đề cập trong bài viết gốc, đầu tiên là đặt mô-đun vào thư mục
>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
65. Cái nào sẽ dựa trên cài đặt của bạn. Tôi sử dụng môi trường ảo và mỗi môi trường nên có một thư mục, >>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
66. Đó là điểm tốt để sử dụngTôi không chắc có cách nào để nó luôn gọi
>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
67 ngoài việc viết nó thành các tập lệnh cụ thể mà bạn muốn chạydrewmullen vào ngày 17 tháng 4 năm 2020
cảm ơn vì đã đặt loạt bài này lại với nhau, chris. bạn nên cân nhắc việc cập nhật video này để bao gồm một số tiêu chuẩn về cách các pythonistas có thể [và có thể không] sử dụng pythonpath. Tôi có thể nói với bạn từ kinh nghiệm cá nhân rằng tôi đã dành rất nhiều thời gian để “cài đặt” các mô-đun của mình bằng các tập lệnh frankenstein kỳ lạ + sys. đường dẫn nối thêm
điều quan trọng là mọi người phải hiểu pythonpath là gì, vì vậy tôi rất vui vì bạn đã làm video này. nhưng tôi nghĩ điều quan trọng là mọi người phải biết rằng bạn không nên dành nhiều thời gian để cố gắng thao túng pythonpath, thiếu gỡ lỗi/phát triển. bạn thậm chí có thể kích thích sự thèm ăn của họ và lảng tránh setuptools/pyproject. toml, v.v.
Anurag Gupta vào tháng 11. 26, 2021
Tôi đã thử kỹ thuật
>>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
68 trên mô-đun >>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
69, nhưng nó báo lỗi [mô-đun 'math' không có thuộc tính >>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
60]. Tuy nhiên, khi tôi sử dụng nó với mô-đun >>> import sys
>>> sys.path
['', '/Library/Frameworks/Python.framework/Versions/3.7/bin', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages']
61, nó hoạt động như trong video. Vì vậy, sự khác biệt ở đây là gì?