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

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

main.py
from ludikDriver.demo2 import demo2_print

demo2_print()

demo2.py
from .demo import demoprint

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

demo2_print()

演示
def demoprint():
    print("demo")

错误:from .demo import demoprint
ModuleNotFoundError: No module named '__main__.demo'; '__main__' is not a package

我应该有__init__.py吗?

最佳答案

如果删除.,它将正常工作。 demo2.py变为:

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

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

demo2_print()

现在,您可以在ipython中运行%run ludikDriver/demo2.py,例如:
demo2
demo

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

关于python-3.x - 没有名为 '__main__.demo'的模块; '__main__'不是软件包python3,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51157314/

10-12 21:48