我是靠谱客的博主 落后路人,最近开发中收集的这篇文章主要介绍解决python报错ModuleNotFoundError: No module named ‘xxx‘方法1 方法2方法3,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

如解决不了你的问题,你来找我

提示的是自定义的包找不到,实际上是有的,__init__.py文件也是有的(包下如果没有__init__.py就创建一个,一半概率此时可解决)。

经过排查解决,方法如下

目录

方法1

方法2

方法3


方法1


如果可以,将报错的包from xxx import yyy缩小范围,放到具体需要它的那行紧挨的上方、而非最顶部


方法2

路径不正确

import sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))

其中os.path.abspath(__file__)用来获取本文件的绝对路径,os.path.dirname用来获取参数的直接全路径。

使用很简单,比如A文件引入了B,B所在的文件比A高两层,则嵌套os.path.dirname两次,嵌套几层就是几个os.path.dirname
比如作者这个情况如下:

根目录
        ----A
        -------a.py
        ----B
        -------C
        -----------c.py


也就是说c.py中引入了a.py的东西报的改错,这时候c.py中就是嵌套两层os.path.dirname。
sys.path.append这句一定一定要放在报错的import那行的上方,否则也是徒劳。

到此,百分之90的概率基本都解决了。如果你的还没解决,排除是路径层级等低级问题导致不正确外,请继续往下看。

方法3


和方法2类似,但看起来更“具体”些

情形如下:

根目录
    ----A
    -------B
    ----------C
    -------------cc.py
    ----D
    -------E
    ----------F
    -------------G
    ----------------gg.py

描述一下:
cc.py中需要导入gg.py中的一个类,此时cc中需要:

sys.path.append('{}{}'.format(os.path.dirname(os.path.abspath(__file__)), '/../../D/E/F')) 
from G import xxx

这就是终极办法,到此你一定可以解决的。实质就是以确定性的姿态定位它的路径。

需要注意的地方:
1,路径的拼装,重在层级的准确性和/
2,如果还不正确,则原因就是路径拼的不对,检查一下即可;

如有任何疑问,可以随时留言哦,如对你有帮助、欢迎留下足迹!

最后

以上就是落后路人为你收集整理的解决python报错ModuleNotFoundError: No module named ‘xxx‘方法1 方法2方法3的全部内容,希望文章能够帮你解决解决python报错ModuleNotFoundError: No module named ‘xxx‘方法1 方法2方法3所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部