Skip to main content
 首页 » 编程设计

python-3.x之模块未找到错误: No module named '__main__.xxxx' ; '__main__' is not a package

2024年05月10日13dyllove98

当前尝试在 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 神奇之地的旅程中一切顺利。