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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容