python ModuleNotFoundError_ No module named 'xxx'的解决方案 ...

宁睿  金牌会员 | 2023-11-18 00:25:01 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 959|帖子 959|积分 2887

本文主要针对的自己写的包无法正常import的情况,如果是第三方包的话正常来说没有问题。
第三方包

主要考虑没有安装对应的版本以及包名写错了等奇葩情况,具体可参考ModuleNotFoundError: No module named ‘xxx’可能的解决方案大全
自建的包

如果是自己的包,可按照下面顺序来检查:

  • 检查__init__.py文件是否存在:如果这个包是你自己写的,不妨检查一下待导入的包的根目录是否存在一个__init__.py文件,没有的话建一个空的__init__.py文件即可 (注意:不光要检查待导入的包根目录是否存在__init__.py文件,还需要检查当前程序所在文件夹是否存在这个文件
  • 自己建的包不在PYTHONPATH目录下:这样通用的解决方案就是将对应包的路径添加到对应目录即可。
  1. sys.path.append({这里改成model_path})
  2. #比如:sys.path.append('~/abcd/Modeling') 自己建的包在Modeling文件夹下
复制代码

  • 第二步的代码和import的顺序:第二步的代码的执行顺序必须要在import之前,一个容易忽视的情况就是在if __name__ == '__main__'中写了对应的sys.path.append,但是由于import写在文件顶部的话会执行在语句之前,因为没有生效。

参考:https://zhuanlan.zhihu.com/p/416872266
我的博客园:https://www.cnblogs.com/swx123
我的github(代码一般都放在这里):https://github.com/578223592

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

宁睿

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表