解决python调用opencv时出现cannot find reference ‘imread‘ in __init__ 即cv.imread 未定义引用

今天终于找到调用cv2未解析的解决办法了,几乎是把全网大多数方式都试了下,总的来说大致有三种原因:
一个是版本不匹配,python的版本和库文件的需求有出入导致无法使用。
一个是不同版本不兼容,下载过多个python版本可能导致这个问题 。
一个是路径设置,这可能不算单独一个原因,前面的操作都可能导致路径出错,不过直接来解决路径问题是最有效的。

解决路径设置问题:

首先,确认所需库文件是安装了的,可以在python的安装路径下如E:\python\Lib\site-packages中找到cv2文件夹

然后,打开你的开发环境,我用的是pycharm 在“文件”内找到“设置”选项,点开后选择python解释器下“全部显示…”

 在所示界面内左上角点击红色框选部分,在随后的解释器路径下点击+号按钮,该路径下应该已有四个路径

 

 选择添加的库文件地址如E:\python\Lib\site-packages\cv2添加后点确定以及应用

 最后,在主界面的左边栏外部库下python解析路径内此时可以看到cv2文件夹

注意:这里应该只有一个site-packages文件夹,如果存在多个可能是先前不同版本python或者不同的开发环境下安装的,这里要删掉其它site-packages只保留当前路径为E:\python\Lib\site-packages的

查看文件路径可以通过右键文件夹选择“复制路径”来查看

我在删除多余的site-packages文件时查看了文件夹下的内容,里面没有cv2这个文件夹,猜测可能是在解析的时候,用的是那个多余的site-packages,导致我原有的已安装了cv2的site-packages无法正常调用。如果猜测成立,那么其实整个操作只需要把多余的site-packages删除掉,留下带有cv2的site-packages就行了

不过,删除多余的site-packages可能导致一个问题,就是原以为已经装好的库一并删掉了,在只有一个site-packages的情况下解决这个问题只要重新在终端输入pip install 库文件名,就行了

安装库部分遇到的问题:

一个是,尽量在使用的开发环境下安装减少出错的可能,比如pycharm可以直接在终端输入指令

另一个是,在使用pip安装外部库文件时候,会遇到超时问题如socket.timeout:The read operation timed out,或者单纯下载速度过慢,往往是几KB的下载速度下载MB为单位的库文件显然要等很久

这里可以用镜像,目前国内镜像有大致以下几种

阿里云 http://mirrors.aliyun.com/pypi/simple/

中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/

豆瓣(douban) http://pypi.douban.com/simple/

清华大学 Simple Index

选择其中一种安装opencv-python库来举例

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python

安装其它库文件只需要把opencv-python换掉就可以了

其它可能的解决方案:

由于我是尝试了网上大多数的解决方案,最后解决的,可能第一第二种原因在不知不觉中解决了,附其它人的解决方案时发现几种可能的报错\警告原因:

1.有评论写到opencv_python和opencv_contrib_python不兼容,本质上opencv_contrib_python是包含opencv_python的但是我电脑上两个都装了,暂时没有相关报错和警告。

2.Numpy的版本不适配,NumPy多核导入错误是由于在Window上安装的NumPy与现有的OpenCV版本不兼容造成的,尝试安装Christoph Gohlke的NumPy库,这些库是在启用多核支持的情况下构建的。

pip install pipwin

pipwin install numpy

3. 在开头调用cv2库函数时尝试执行以下操作:from cv2 import cv2

而不是做:import cv2

这个方法对我没有效果,仍然使用import cv2完成调用

4. 更换系统路径下环境配置,以win11为例

1)在桌面右键computer点击“属性”下选择“高级系统设置”选择“高级”栏打开“环境变量”

2)在打开的窗口中

dell的用户变量,选择“path”行,然后单击“编辑 ”按钮

确认下面存在E:\python\Scripts\和E:\python\

以及开发环境的路径,我这里是pycharm所以是

%PyCharm Community Edition%和%PyCharm%这两个路径

系统变量下,选择“path”行,确认存在E:\python\Scripts\和E:\python\

(确保检查这些路径值是否与您的Python安装位置和版本相对应)

3)如果系统变量下存在PYTHONHOME变量,并确保将其也设置为E:\python\

这步应当是为了解决anaconda卸载残留的,我这里没有,原文中操作完成确认之后还需要重启,具体可以参考下附的第三个链接。

最终解决我的问题的还是图文解释过的路径问题,后附的几种或许可以为解决不同情况做参考

有效参考的原文链接:如何解决安装opencv后,在python中找不到引用’imread‘in’__init__.py‘的问题? – 问答 – 腾讯云开发者社区-腾讯云

解决PyCharm中opencv的cv2不显示函数引用,高亮提示找不到引用-CSDN博客

ModuleNotFoundError: No module named ‘encodings‘_big__apple的博客-CSDN博客

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2023年6月20日
下一篇 2023年6月20日

相关推荐