tôi có một dự án mà trông như thế này:Python nhập khẩu tuyệt đối trong mô-đun không
my_project/
__init__.py -- empty
run.py
datacheck/
__init__.py -- empty
datacheck.py -- containing class DataCheck(object)
config.py -- containing BusinessConfig(object)
business.py -- containing class BusinessCheck(DataCheck)
My PYTHONPATH
được cấu hình để có/my_project trong đó.
Trong run.py, tôi có đoạn mã sau:
from datacheck.business import BusinessCheck
business = BusinessCheck()
business.check_data()
Trong business.py, tôi có nhập khẩu sau đó thất bại:
from datacheck.config import BusinessConfig
from datacheck.datacheck import DataCheck
Một nhập khẩu tương đối như from .config import BusinessConfig
công trình - tuy nhiên Tôi đã đọc trong nhiều chủ đề rằng một nhập khẩu tuyệt đối được ưa thích.
Để làm một bài kiểm tra đơn giản, tôi cũng đã tạo ra những điều sau đây:
myproject/
__init__.py -- empty
run_test.py
test/
__init__.py -- empty
test1.py -- containing class Test1(object)
test2.py -- containing class Test2(Test1)
run_test.py nhập khẩu và chạy lớp Test2
, điều này đã không thất bại.
Nó khiến tôi hơi hoang mang một chút, tôi không hiểu tại sao nhập khẩu tuyệt đối của tôi trong datacheck không hoạt động - bất cứ ai có thể giải thích?
'từ datacheck.business import Business' nhưng' business.py - chứa class BusinessCheck (DataCheck) '... Trường hợp là lớp' Business' ở đâu? – eumiro
Bạn có tệp '__init __. Py' trong' datacheck' không? Tập tin này làm cho thư mục trở thành một gói và có thể trống. –
@eumiro: Xin lỗi, ít sai lầm - sửa nó. –