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

问题:

python3版本 
from .logins.py import login1
报错信息:
ModuleNotFoundError: No module named '__main__.XX'; '__main__' is not a package
提示没有找到名为 '__main__.XX'的模块,'__main__' 并不是一个包。

原因:

不能简单的这样执行,这样执行的话,模块的名字被变成了main

文件目录.png

例子:

logins.py

    def dog(self):
        print("狗在跑")

login1.py里,调用run来执行

from .logins import dog

dog()  #调用函数
报错信息.png

所以使用from的话,还是建议使用目录开始的路径比较好,直接使用相对路径会出现问题

解决办法:不使用相对路径。

  • 把name.py的上级路径放到系统path里
  • 把name.py的上级目录作为工程目录打开

login1.py里,更改相对路径

from my.my_py.logins import dog

dog()  #调用函数
更改后执行结果.png

推荐阅读更多精彩内容