首页 > 解决方案 > 没有名为 '__main__.demo' 的模块;'__main__' 不是 python3 包

问题描述

如果我执行main.py它工作正常,问题是当我执行demo2.py

|myPackage
   |subPackage
      demo.py
      demo2.py
   main.py

主文件

from ludikDriver.demo2 import demo2_print

demo2_print()

演示2.py

from .demo import demoprint

def demo2_print():
    print("demo2")
    demoprint()

demo2_print()

演示.py

def demoprint():
    print("demo")

错误:from .demo import demoprint

ModuleNotFoundError: No module named '__main__.demo'; '__main__' is not a package

我应该有__init__.py吗?

标签: python-3.xpython-3.6

解决方案


如果你放弃.,它应该可以工作。demo2.py变成:

from demo import demoprint # instead of `from .demo import demoprint`

def demo2_print():
    print("demo2")
    demoprint()

demo2_print()

现在你可以%run ludikDriver/demo2.py在 ipython 中运行,你会得到:

demo2
demo

有关更多详细信息,本文的“导入”部分可能会有所帮助。


推荐阅读