Я намагаюся дотримуватися PEP 328 із такою структурою каталогу:
pkg/
__init__.py
components/
core.py
__init__.py
tests/
core_test.py
__init__.py
У core_test.py
мене є наступне твердження про імпорт
from ..components.core import GameLoopEvents
Однак при запуску я отримую таку помилку:
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
Шукаючи навколо, я виявив, що " відносний шлях не працює навіть із __init__.py " та " Імпортувати модуль із відносного шляху ", але вони не допомогли.
Щось тут мені не вистачає?
no module named myimports.foo
коли я запускаю їх.
cd
в PyImports
, і запустити python -m unittest tests.test_abs
, наприклад.
unittest
проектів, тому я написав цей досить вичерпний зразок проекту, який охоплює глибоке вкладення модулів, відносний та абсолютний імпорт (де робота та ні), а також відносне та абсолютне посилання зсередини на пакетний, а також одно-, подвійний та пакетний імпорт класів. Допомагав чіткі речі прямо для мене!