没有名为'__main __。demo'的模块;'__main__'不是python3软件包

and*_*ena 5 python-3.x python-3.6

如果我执行main.py正常,问题出在我执行时demo2.py

|myPackage
   |subPackage
      demo.py
      demo2.py
   main.py
Run Code Online (Sandbox Code Playgroud)

main.py

from ludikDriver.demo2 import demo2_print

demo2_print()
Run Code Online (Sandbox Code Playgroud)

demo2.py

from .demo import demoprint

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

demo2_print()
Run Code Online (Sandbox Code Playgroud)

演示

def demoprint():
    print("demo")
Run Code Online (Sandbox Code Playgroud)

错误: from .demo import demoprint

ModuleNotFoundError: No module named '__main__.demo'; '__main__' is not a package
Run Code Online (Sandbox Code Playgroud)

我应该有__init__.py吗?

You*_*ani 8

如果删除.,它应该可以工作。demo2.py变成:

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

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

demo2_print()
Run Code Online (Sandbox Code Playgroud)

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

demo2
demo
Run Code Online (Sandbox Code Playgroud)

有关详细信息,对部分“进口” 这篇文章可能的帮助。