从python3.6中的另一个包导入时,“未命名模块”

时间:2018-07-02 20:39:48

标签: python-3.x python-3.6

如果我执行demo2.py可以正常工作,那么问题出在我执行main.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")

错误:No module named 'demo'

3 个答案:

答案 0 :(得分:1)

只需按照pep 328中的建议使用相对进口即可。

from .demo import demoprint

您可以为另一个包装袋做。就像相对路径一样。

答案 1 :(得分:1)

您的模块需要自己的上下文。您应该在 subPackage myPackage 中拥有“ __init__.py”文件。那么您的导入应该是相对的:

from . import demo

或者在您的示例中更多:

from .demo import demoprint

答案 2 :(得分:0)

您的错误与demo.py中的第一行有关:

  

从演示导入演示记录中

没有名为demo的模块