当前尝试在 Python3 中工作并使用绝对导入将一个模块导入另一个模块,但出现错误 ModuleNotFoundError: No module named '__main__.moduleB'; '__main__' 不是一个包
。考虑这个项目结构:
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
给出错误。这里需要改变什么?
请您参考如下方法:
.moduleB
是相对导入。相对仅在先导入或加载父模块时才有效。这意味着您需要将 proj
导入到当前运行时环境中的某个位置。当您使用命令python3 moduleA.py3
时,它没有机会导入父模块。您可以:
从 proj.moduleB 导入 moduleB
或- 您可以创建另一个脚本,例如
run.py
,来调用from proj import moduleA
祝您在 Python 神奇之地的旅程中一切顺利。