Tôi biết một hoặc nhiều trường hợp được báo cáo khi nhập python không thành công. Bởi vì các gói python được sắp xếp có tham chiếu đến cấu trúc hệ thống tệp, nên việc chạy một mô-đun nhập gói cao hơn một cấp trong hệ thống phân cấp tệp sẽ dẫn đến ImportError
Lỗi này có thể được giải quyết theo bất kỳ cách nào sau đây
Xuất biến
$PYTHONPATH
trong thiết bị đầu cuối của bạnexport PYTHONPATH=.
Kiểm tra bài viết Enth think này về các lựa chọn thay thế khác
Lập trình thêm đường dẫn cơ sở của mô-đun vào
sys.path
import sys sys.path.append['./../']
Sử dụng công cụ tìm mục nhập Đường dẫn ✔️
Trong khi lan man về việc thử chạy một mô-đun nhập tên từ một mô-đun khác, tôi bắt gặp một
Chỉ cần đặt
__path__
thành danh sách hoặc bộ đường dẫn nơi python có thể tra cứu các mô-đunĐối với gói ví dụ của tôi trong kho lưu trữ này, tôi đã đặt
__path__ = ['./../']
trong mô-đun mà tôi dự định chạypython3 one/b.py two
Xem gói ví dụ về cách sử dụng công cụ tìm mục nhập Đường dẫn
Mô-đun python là một tệp bao gồm mã Python với một tập hợp các định nghĩa hàm, lớp và biến. Mô-đun làm cho mã có thể tái sử dụng và dễ hiểu. Chương trình cần sử dụng mô-đun nên nhập mô-đun cụ thể đó. Trong bài viết này, chúng ta sẽ thảo luận về cách nhập mô-đun Python với đường dẫn đầy đủ của nó
Có nhiều phương pháp khác nhau có thể được sử dụng để nhập mô-đun bằng cách sử dụng đường dẫn đầy đủ của mô-đun
- sử dụng sys. đường dẫn. chức năng nối thêm []
- Sử dụng gói importlib
- Sử dụng lớp SourceFileLoader
Xem xét cách sắp xếp tệp sau đây và hãy xem cách sử dụng các phương pháp được liệt kê ở trên để nhập gfg. mô-đun py trong chính. py
python |--main.py |articles |--gfg.py
Dưới đây là mã cho gfg. py
Python3
# class
class
GFG:
sys.path.append["module_path"]1
sys.path.append["module_path"]3
sys.path.append["module_path"]4
sys.path.append["module_path"]5
sys.path.append["module_path"]6_______4_______7
sys.path.append["module_path"]8_______4_______9
sys.path.append["module_path"]5
Inside Class method Inside explicit method1
sys.path.append["module_path"]3
Inside Class method Inside explicit method3
sys.path.append["module_path"]6
sys.path.append["module_path"]7
Inside Class method Inside explicit method7
sys.path.append["module_path"]9
sử dụng sys. đường dẫn. chức năng nối thêm []
Đây là cách dễ nhất để nhập mô-đun Python bằng cách thêm đường dẫn mô-đun vào biến đường dẫn. Biến đường dẫn chứa các thư mục Trình thông dịch Python tìm kiếm các mô-đun đã được nhập trong tệp nguồn
cú pháp
sys.path.append["module_path"]
Thí dụ
Python3
Inside Class method Inside explicit method9
Inside Class method Inside explicit method0
Inside Class method Inside explicit method1
Inside Class method Inside explicit method2
Inside Class method Inside explicit method3
Inside Class method Inside explicit method4
sys.path.append["module_path"]9
Inside Class method Inside explicit method6
Inside Class method Inside explicit method0
Inside Class method Inside explicit method8
Inside Class method Inside explicit method9
Inside Class method Inside explicit method8
Inside Class method Inside explicit method0
module = SourceFileLoader["module_name","module_path"].load_module[]2
module = SourceFileLoader["module_name","module_path"].load_module[]3
module = SourceFileLoader["module_name","module_path"].load_module[]4
module = SourceFileLoader["module_name","module_path"].load_module[]5
đầu ra
Inside Class method Inside explicit method
Sử dụng gói importlib
Gói importlib cung cấp việc triển khai câu lệnh nhập trong mã nguồn Python có thể di chuyển tới bất kỳ trình thông dịch Python nào. Điều này cho phép người dùng tạo các đối tượng tùy chỉnh giúp họ sử dụng quy trình nhập theo nhu cầu của họ. nhập khẩu. util là một trong những mô-đun có trong gói này có thể được sử dụng để nhập mô-đun từ đường dẫn đã cho
cú pháp
mô-đun = nhập khẩu. sử dụng. spec_from_file_location[“module_name”, “module_path”]
Thí dụ
Python3
Inside Class method Inside explicit method0
module = SourceFileLoader["module_name","module_path"].load_module[]7
module = SourceFileLoader["module_name","module_path"].load_module[]8
module = SourceFileLoader["module_name","module_path"].load_module[]9
Inside Class method Inside explicit method0
Inside Class method Inside explicit method1
Inside Class method Inside explicit method2
Inside Class method Inside explicit method3
Inside Class method Inside explicit method4
Inside Class method Inside explicit method5
Inside Class method Inside explicit method6
sys.path.append["module_path"]9
Inside Class method Inside explicit method8
Inside Class method Inside explicit method9_______13_______2
# class
1
# class
2
# class
3
# class
4
# class
5
# class
6
đầu ra
Inside Class method Inside explicit method
Sử dụng lớp SourceFileLoader
Lớp SourceFileLoader là một lớp cơ sở trừu tượng được sử dụng để triển khai tải tệp nguồn với sự trợ giúp của hàm load_module[] thực sự nhập mô-đun