目前正在尝试在 Python3 中工作并使用绝对导入将一个模块导入另一个模块,但我收到错误 ModuleNotFoundError: No module named '__main__.moduleB'; '__main__' is not a package
。考虑这个项目结构:
proj
__init__.py3 (empty)
moduleA.py3
moduleB.py3
模块A.py3
from .moduleB import ModuleB
ModuleB.hello()
模块B.py3
class ModuleB:
def hello():
print("hello world")
然后运行 python3 moduleA.py3
给出错误。这里需要改什么?
原文由 mpseligson 发布,翻译遵循 CC BY-SA 4.0 许可协议
.moduleB
是相对导入。 Relative 仅在先导入或加载父模块时才有效。这意味着您需要将proj
导入当前运行时环境中的某处。当您使用命令python3 moduleA.py3
时,它没有机会导入父模块。你可以:from proj.moduleB import moduleB
或者run.py
,调用from proj import moduleA
祝你在 Python 的神奇土地之旅中好运。