Tôi đang cố gắng làm theo PEP 328 , với cấu trúc thư mục sau:
pkg/
__init__.py
components/
core.py
__init__.py
tests/
core_test.py
__init__.py
Trong core_test.py
tôi có báo cáo nhập khẩu sau đây
from ..components.core import GameLoopEvents
Tuy nhiên, khi tôi chạy, tôi gặp lỗi sau:
tests$ python core_test.py
Traceback (most recent call last):
File "core_test.py", line 3, in <module>
from ..components.core import GameLoopEvents
ValueError: Attempted relative import in non-package
Tìm kiếm xung quanh tôi thấy " đường dẫn tương đối không hoạt động ngay cả với __init__.py " và " Nhập mô-đun từ đường dẫn tương đối " nhưng chúng không giúp ích.
Có điều gì tôi đang thiếu ở đây?
no module named myimports.foo
khi tôi chạy chúng.
cd
vào PyImports
và chạy python -m unittest tests.test_abs
, chẳng hạn.
unittest
dự án khác nhau , vì vậy tôi đã viết dự án mẫu khá toàn diện này bao gồm việc lồng sâu các mô-đun, nhập khẩu tương đối và tuyệt đối (nơi làm việc và không), và tham chiếu tương đối và tuyệt đối từ bên trong gói, cũng như nhập các lớp đơn, đôi và cấp gói. Đã giúp mọi thứ rõ ràng ngay cho tôi!