ĐẦU TIÊN, nếu bạn muốn có thể truy cập man1. py từ man1test. py AND manModules. py từ man1. py, bạn cần thiết lập đúng các tệp của mình dưới dạng
Các gói là một cách cấu trúc không gian tên mô-đun của Python bằng cách sử dụng “tên mô-đun chấm”. Ví dụ: tên mô-đun
2 chỉ định mô-đun con có tênman |- __init__.py |- Mans |- __init__.py |- man1.py |- MansTest |- __init.__.py |- SoftLib |- Soft |- __init__.py |- SoftWork |- __init__.py |- manModules.py |- Unittests |- __init__.py |- man1test.py
3 trong gói có tênman |- __init__.py |- Mans |- __init__.py |- man1.py |- MansTest |- __init.__.py |- SoftLib |- Soft |- __init__.py |- SoftWork |- __init__.py |- manModules.py |- Unittests |- __init__.py |- man1test.py
4man |- __init__.py |- Mans |- __init__.py |- man1.py |- MansTest |- __init.__.py |- SoftLib |- Soft |- __init__.py |- SoftWork |- __init__.py |- manModules.py |- Unittests |- __init__.py |- man1test.py
...
Khi nhập gói, Python tìm kiếm qua các thư mục trên
5 để tìm thư mục con của góiman |- __init__.py |- Mans |- __init__.py |- man1.py |- MansTest |- __init.__.py |- SoftLib |- Soft |- __init__.py |- SoftWork |- __init__.py |- manModules.py |- Unittests |- __init__.py |- man1test.py
Các tệp
6 được yêu cầu để làm cho Python coi các thư mục như chứa các gói;man |- __init__.py |- Mans |- __init__.py |- man1.py |- MansTest |- __init.__.py |- SoftLib |- Soft |- __init__.py |- SoftWork |- __init__.py |- manModules.py |- Unittests |- __init__.py |- man1test.py
Bạn cần thiết lập nó thành một cái gì đó như thế này
man
|- __init__.py
|- Mans
|- __init__.py
|- man1.py
|- MansTest
|- __init.__.py
|- SoftLib
|- Soft
|- __init__.py
|- SoftWork
|- __init__.py
|- manModules.py
|- Unittests
|- __init__.py
|- man1test.py
THỨ HAI, đối với lỗi "
from Soft.SoftWork.manModules import *
# no change to import statement but need to add Soft to PYTHONPATH
def foo[]:
print["called foo in man1.py"]
print["foo call module1 from manModules: " + module1[]]
1" do from Soft.SoftWork.manModules import *
# no change to import statement but need to add Soft to PYTHONPATH
def foo[]:
print["called foo in man1.py"]
print["foo call module1 from manModules: " + module1[]]
2 gây ra trong man1test. py, giải pháp được ghi lại cho vấn đề đó là thêm man1. py thành man
|- __init__.py
|- Mans
|- __init__.py
|- man1.py
|- MansTest
|- __init.__.py
|- SoftLib
|- Soft
|- __init__.py
|- SoftWork
|- __init__.py
|- manModules.py
|- Unittests
|- __init__.py
|- man1test.py
5 vì Mans nằm ngoài gói MansTest. Xem từ tài liệu Python. Nhưng nếu bạn không muốn sửa đổi trực tiếp man
|- __init__.py
|- Mans
|- __init__.py
|- man1.py
|- MansTest
|- __init.__.py
|- SoftLib
|- Soft
|- __init__.py
|- SoftWork
|- __init__.py
|- manModules.py
|- Unittests
|- __init__.py
|- man1test.py
5, bạn cũng có thể sửa đổi from Soft.SoftWork.manModules import *
# no change to import statement but need to add Soft to PYTHONPATH
def foo[]:
print["called foo in man1.py"]
print["foo call module1 from manModules: " + module1[]]
55 được khởi tạo từ những vị trí nàyman |- __init__.py |- Mans |- __init__.py |- man1.py |- MansTest |- __init.__.py |- SoftLib |- Soft |- __init__.py |- SoftWork |- __init__.py |- manModules.py |- Unittests |- __init__.py |- man1test.py
- Thư mục chứa tập lệnh đầu vào [hoặc thư mục hiện tại khi không có tệp nào được chỉ định]
5 [danh sách tên thư mục, có cùng cú pháp với biến hệ vỏfrom Soft.SoftWork.manModules import * # no change to import statement but need to add Soft to PYTHONPATH def foo[]: print["called foo in man1.py"] print["foo call module1 from manModules: " + module1[]]
8]from Soft.SoftWork.manModules import * # no change to import statement but need to add Soft to PYTHONPATH def foo[]: print["called foo in man1.py"] print["foo call module1 from manModules: " + module1[]]
- Mặc định phụ thuộc vào cài đặt
THỨ BA, đối với
from Soft.SoftWork.manModules import *
# no change to import statement but need to add Soft to PYTHONPATH
def foo[]:
print["called foo in man1.py"]
print["foo call module1 from manModules: " + module1[]]
9 mà bạn nói "là để tạo điều kiện thuận lợi cho câu lệnh nhập đã nói ở trên trong man1. py", đó là cách hoạt động của quá trình nhập. Nếu bạn muốn nhập Soft. SoftLib trong man1. py, bạn phải thiết lập man1. py để tìm Soft. SoftLib và nhập trực tiếp vào đóNhư đã nói, đây là cách tôi làm cho nó hoạt động
người đàn ông1. py
from Soft.SoftWork.manModules import *
# no change to import statement but need to add Soft to PYTHONPATH
def foo[]:
print["called foo in man1.py"]
print["foo call module1 from manModules: " + module1[]]
man1test. py
# no need for "from ...MansTest.SoftLib import Soft" to facilitate importing..
from ...Mans import man1
man1.foo[]
người đàn ôngMô-đun. py
man
|- __init__.py
|- Mans
|- __init__.py
|- man1.py
|- MansTest
|- __init.__.py
|- SoftLib
|- Soft
|- __init__.py
|- SoftWork
|- __init__.py
|- manModules.py
|- Unittests
|- __init__.py
|- man1test.py
0đầu ra thiết bị đầu cuối
man
|- __init__.py
|- Mans
|- __init__.py
|- man1.py
|- MansTest
|- __init.__.py
|- SoftLib
|- Soft
|- __init__.py
|- SoftWork
|- __init__.py
|- manModules.py
|- Unittests
|- __init__.py
|- man1test.py
1Theo gợi ý, có thể nghĩ lại mục đích của các tệp SoftLib đó. Đây có phải là một loại "cầu nối" giữa man1. py và man1test. py? . Ngoài ra, nó hơi khó hiểu đối với phần kiểm tra mã [man1. py] để nhập nội dung từ trong thư mục kiểm tra [MansTest]