我正在尝试遵循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也无法工作的相对路径"和"从相对路径导入模块",但它们并没有帮助到我。
这里还有什么我需要注意的吗?
unittest
项目结构方式,因此我编写了这个相当全面的示例项目,涵盖模块的深度嵌套、相对和绝对导入(何时起作用与不起作用)、包内相对和绝对引用,以及单个、双重和包级别类的导入。这帮助我很快地清楚了所有问题! - cod3monk3ycd
到PyImports
目录下,然后运行python -m unittest tests.test_abs
。 - duozmo