Tôi muốn nhập thư mục con làm mô-đun. Do đó mọi thư mục con chứa một số __init__.py
. cấu trúc thư mục của tôi là như thế này:Mô-đun nhập từ thư mục con
src\
main.py
dirFoo\
__init__.py
foofactory.py
dirFoo1\
__init__.py
foo1.py
dirFoo2\
__init__.py
foo2.py
Trong kịch bản chính của tôi, tôi nhập
from dirFoo.foofactory import FooFactory
Trong tập nhà máy này tôi bao gồm các module phụ:
from dirFoo1.foo1 import Foo1
from dirFoo2.foo2 import Foo2
Nếu tôi gọi foofactory tôi gặp lỗi, con trăn đó không thể nhập các mô-đun con foo1 và foo2:
Traceback (most recent call last):
File "/Users/tmp/src/main.py", line 1, in <module>
from dirFoo.foofactory import FooFactory
File "/Users/tmp/src/dirFoo/foofactory.py", line 1, in <module>
from dirFoo1.foo1 import Foo1
ImportError: No module named dirFoo1.foo1
Một điều cần nhớ! thêm '__init __. py' vào mọi thư mục con mà bạn đang nhập từ đó. –
Empty '__init __. Py' có thể thực hiện công việc. – cerebrou
Cú pháp sẽ là gì nếu trước đây 'Foo1' nằm trong thư mục mẹ và một mã được mã hóa giống như' từ Foo1 import * '. Có cách nào để đạt được hiệu ứng tương tự như vậy bạn không cần phải tiền tố tất cả mọi thứ với 'Foo1'? – jxramos