Giả sử tôi có:Python 3 không cần __init__.py trong tình huống này?
src/
__init__.py
a.py
b.py
Giả sử __init__.py
là một tập tin rỗng, và a.py
chỉ là một dòng:
TESTVALUE = 5
Giả sử b.py
là:
from src import a
print(a.TESTVALUE)
Bây giờ trong cả hai Python 2.7 và Python 3.x, chạy b.py
cho kết quả (5
).
Tuy nhiên, nếu tôi xóa các tập tin __init__.py
, b.py
vẫn hoạt động trong Python 3.x, nhưng trong Python 2.7, tôi nhận được thông báo lỗi:
Traceback (most recent call last):
File "b.py", line 5, in <module>
from src import a
ImportError: No module named src
Tại sao Python 2.7 thể hiện hành vi khác nhau trong tình huống này?