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

时间:2018-07-03 14:40:45

标签: python-3.x python-3.6

如果我执行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()

demo.py

def demoprint():
    print("demo")

错误:from .demo import demoprint

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

我应该有__init__.py吗?

1 个答案:

答案 0 :(得分:2)

如果您放下.,它应该可以工作。 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的“导入”部分可能会有帮助。