OpenCV安装成功,但是无法导入 cv2 的指定模块 -- Ubuntu Anaconda 环境一键安装 opencv
文章目录
- 1. 问题
- 2. 分析
- 3.解决
- 4. 其它尝试
- 5. 总结
1. 问题
OpenCV安装成功,但是无法导入 cv2 的指定模块 – Ubuntu Anaconda 环境,具体是安装好 opencv-python 4.1.0.25 后,准备导入模块 cv2.ximgproc.guideFilter 时,仍然报错,
ModuleNotFoundError: No module named ‘cv2.ximgproc’
并且已经安装好 opencv-contrib-python 4.1.0.25 。
2. 分析
在翻阅别人的博客,大概都是认为问题出在了 安装了多个版本的 opencv-python 和 opencv-contrib-python,CV2的库冲突,其中 opencv-contrib-python 是 opencv-python 的拓展版本,有opencv 的一些附加功能,是对 opencv 的补充。
他们的解决方案大致是先将所有的 opencv-python 和 opencv-contrib-python 先卸载,再只安装 opencv-contrib-python 和 opencv-python ,就可以解决他们的问题。
pip uninstall opencv-contrib-python opencv-python
注意,这里安装的 opencv-contrib-python 和 opencv-python 一般是你所需的指定版本,一般先安装 opencv-python,再安装 opencv-contrib-python。一般使用 pip install XXX
安装,conda install XXX
只能安装 opencv-python ,无法安装 opencv-contrib-python 。
pip install opencv-contrib-python==4.1.0.25
或者
pip install opencv-python==4.1.0.25
pip install opencv-contrib-python==4.1.0.25
但是在我创建的 conda 虚拟环境中,这种方法依旧没能解决我遇到的问题。即使使用 conda list 查看已经安装好了指定版本的 opencv-python 和 opencv-contrib-python,依旧无法导入需要的模块 cv2.ximgproc.guideFilter 。
其中,模块 cv2.ximgproc.guideFilter 用于导向滤波。
参考链接:
1
2
3
3.解决
有博客认为:pip 安装和 conda 安装的 python 依赖包有不匹配的地方,所以建议采用离线的方式安装 opencv-python 和 opencv-contrib-python 的 .whl 文件 。
首先在卸载完成 opencv-python 和 opencv-contrib-python 以后,去 opencv 的镜像文件网站下载我们需要的版本,在 https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/opencv-python/ 下载所需的 opencv-contrib-python ,在 https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/opencv-python/ 下载所需的 opencv-python ,
再离线安装,
pip install /home/xxx/opencv_contrib_python-4.1.0.25-cp36-cp36m-manylinux1_x86_64.whl
pip install /home/xxx/opencv_python-4.1.0.25-cp36-cp36m-manylinux1_x86_64.whl
其中要注意的是 cp36 表示 python 环境是 3.6 版本,manyliunx 表示系统平台内核是基于 liunx 。
很遗憾,这种方法依旧还是未能成功导入模块 cv2.ximgproc 。在我创建的 conda 虚拟环境中,使用 conda list 查看,即使显示已经安装好了指定版本的 opencv-python 和 opencv-contrib-python,依据无法导入需要的模块 cv2.ximgproc.guideFilter 。
最后发现了问题所在,创建的虚拟环境下对应的 opencv-python 和 opencv-contrib-python 安装包文件夹下竟然基本是空,而其它依赖包安装文件夹下有非常多的 .py 文件。
先定位 opencv-python 依赖包安装的文件夹,
pip show opencv-python
显示自己创建的虚拟换环境中,opencv-python 所在的安装路径为
/home/XXX/anaconda3/envs/自己创建的虚拟环境名/python3.6/site-packages/cv2/
这说明,表面上使用 conda list 显示是 安装了 opencv-python,但是实际上并没有安装成功,只是在虚拟环境下存在相关的安装文件夹,但是里面并没有文件。我知道 conda 是可以直接复制虚拟环境中依赖包的安装文件来进行移植环境的,于是我直接在之前安装过 opencv-python 和 opencv-contrib-python 的另外的虚拟环境中复制了opencv-python 和 opencv-contrib-python 的安装文件到我现在需要的用虚拟环境中,解决了我遇到的问题,我知道这种解决方式治标不治本,但没有找到更好的解决方法,比如 一条类似 pip install XXX
的指令就解决我上面遇到的问题。希望路过的大佬能帮我指出问题的根本所在,这样可以让遇到了和我一样问题的其他人能少浪费时间。
我现在个人感觉问题还是出在使用 pip 语句和 conda 语句安装依赖包时,版本发生了冲突,尽管离线方式安装也没成功。
本文所用 conda 版本是 4.5.11
conda --version
4. 其它尝试
看到有别的博客是通过直接在 opencv 的 Github 上面源码安装,我这里没试,感觉很麻烦,大家可以试试能不能行。
另外,重新创建了一个虚拟环境,python 版本是 3.6 ,只安装 opencv-python 和 opencv-contrib-python,也是不行,在相关依赖包的安装文件夹下是空的,没有相关的 .py 文件。
最后我再试一试使用 conda install XXX
命令,能否安装上。
在创建的新的虚拟环境下,conda 命令安装 opencv
conda install -c https://conda.anaconda.org/menpo opencv3
或者安装最新版本的opencv ,上面语句安装的是 opencv 3.x.x版本,下面是是安装 4.X.X 版本。
conda install -c https://conda.anaconda.org/menpo opencv
查找你需要的版本,
conda search opencv -c conda-forge
或者通过以下方式查找 anaconda 官网中所有版本的 opencv 。
conda search -c https://conda.anaconda.org/menpo opencv*
很遗憾,虽然安装上了安装包 opencv ,能导入 cv2.ximgproc 模块, 但是还是没能跑同代码,是 opencv 的版本不对。anaconda 官网的 opencv 版本有限,我需要的是 opencv 4.X.X 的版本,我创建的虚拟环境的 python 是 3.6 版本。可是 anaconda 官网的 opencv 4.X.X python 需要 大于或等于 3.7 。所以不管是用 conda install -c https://conda.anaconda.org/menpo opencv 还是 conda install -c https://conda.anaconda.org/menpo opencv3 ,anaconda 给我匹配的可以安装的最新版本的 opencv 版本是 3.4.2 。
希望我上面的环境配置过程,能帮到屏幕前的你。
更正:
1、上面提到的 cv2.ximgproc.guideFilter 不是一个模块 。 cv2.ximgproc 是一个模块,guideFilter 是该模块的一个函数。
2、 conda 是安装 opencv3 或者 opencv ,不是安装 opencv-python 和 opencv-contrib-python 。
5. 总结
最后总算是实现了一键安装 opencv ,
pip install opencv-python
或者
conda install opencv
一般,上述语句安装,都是安装的匹配你 python 版本的 opencv 最新版本。
上述问题主要在于:conda 创建的虚拟环境中 python 版本;你所需的 opencv 版本;还有 conda 和 pip 安装匹配的问题。
首先,我们使用 conda 创建虚拟环境,是希望通过 anaconda 来统一管理各个依赖包,包括不同依赖包之间的版本匹配。
然后,存在一个问题就是,conda 中可以下载到的依赖包可能有限,比如 pip 可以下到几乎所有的 python 依赖包,但是 conda 中并没有那么多的依赖包(当然也是很多的,只有个别的包 pip 有,但是 conda 没有),所以 你在 conda 创建的虚拟环境中 使用 pip install xxx
时需要特别注意这一点,即使你 pip install opencv-python == 4.1.0.25
,但是 conda 里面并没有这个版本,所以导致 你使用 pip install opencv-python ==4.1.0.25
安装时,相关安装文件夹下是空的,但是你使用 conda list
显示安装了 opencv-python,其实并没有安装成功。
还有就是,在你使用 conda install opencv
安装时,比如 你 创建 的虚拟环境 的 python 版本为 3.6 ,那么 就不允许你下载 4.1.0.25 版本的 opencv ,python 版本为 3.6 ,那么你能在 conda 中下载到的 最新的 opencv 版本是 3.4.2 。你如果要下载 4.1.0.25 版本的 opencv , 那么 你创建虚拟环境时应该 将 python 版本设置为大于 3.7。
最后,还有一点需要注意的是,使用 pip install opencv-python==指定版本
时要慎重,首先你要确定 anaconda 确实有你指定的版本存在,你可以通过 conda search -c https://conda.anaconda.org/menpo opencv*
来查询,如果你创建的虚拟环境中的 python 版本 和 你指定的 opencv-python 版本不匹配则会出现 安装的是空文件的情况,并不会报错(很难让人发现问题所在),虽然 conda list 还会显示 你安装了 你指定的 opencv-python 版本,实际是你安装过,但并没有成功。
如果 你是使用 conda install opencv-python==指定版本
,那么要是 conda 中没有你指定的版本,则会直接报错,如果有指定版本,则会安装 和你的 python 版本匹配的最新的 opencv 版本。这个时候你还要考虑 这个最新版本 的 opencv 是否是所需的,比如 给你安装的是 最新版本的 opencv 4.5.5 ,但是 你实际需要的是 3.4.2 版本,你在使用 opencv 时,可能会由于版本功能差异导致报错,其实并不是代码的问题,只是 opencv 版本不匹配导致。
希望能解决你在安装 opencv 时遇到的问题。
参考链接:
1
2
3
4
5
6
7
8
9
OpenCV安装成功,但是无法导入 cv2 的指定模块 -- Ubuntu Anaconda 环境一键安装 opencv相关推荐
- MathType 如何安装成功以及如何导入word
MathType 如何安装成功以及如何导入word (一)安装office2016 (二)安装MathType6.9 (三)MathType使用 (四)导入word 突发奇想项安装MathType,于 ...
- Ubuntu开发环境配置--- 安装chrome浏览器
Ubuntu开发环境配置--- 安装chrome浏览器 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.c ...
- java一键_Java环境安装-Java环境一键安装下载免安装版-西西软件下载
Java环境一键安装,一键安装包,安装Java环境,无需用户手动安装操作,非常便利,由论坛大神整合,双击运行程序可一键配置环境,可以根据需求来进行选择.本次带来Java环境一键安装工具下载,需要配置J ...
- 青龙依赖环境一键安装部署
青龙依赖环境一键安装部署 青龙安装教程 没服务器的先自行购买,腾讯云2H4G8M首年70–点击购买 QQ交流:1014549449 --------------点击跳转 新版本的青龙(2.10.2+ ...
- 安装完Tensorflow却找不到指定模块
安装完Tensorflow,找不到指定模块,ImportError: DLL load failed问题解决办法. 摘要: 这篇blog将会提供几种解决方案,都是我踩过的坑,但是都一一解决了,希望对大 ...
- Anaconda环境下安装opencv
问题: anaconda环境下运行jupyter里面的代码 里面需要调用cv2包. 之前习惯用pip install 安装包 我就习惯性的使用 pip install opencv-python 但是 ...
- linux没有图形界面opcv,关于Linux/ubuntu的环境下安装OpenCV并配置Clion【全套攻略】及关于'Opencv'file not found 的问题...
1.如何在Linux/ubuntu配置OpenCV 1.1 :进入OpenCV官网下载:(也可进入git Hub 在终端Clone) 等待下载完成 1.2:安装OpenCV: 笔者下载的是Opencv ...
- amd显卡在Linux上安装,AMD上最新的ATI显卡驱动在Ubuntu 8.04上安装成功
为什么 AMD 上最新的 ATI 显卡驱动在Ubuntu 8.04上不能安装 ati-driver-installer-8-6-x86.x86_64 真的搞不懂! 下的时候没注意看 Install I ...
- 如何在anaconda环境下安装tensorflow/pytorch/keras等
第一种方法:在conda 环境中安装 第一步:找到 Anaconda Navigator 第二步:打开,找到环境 点击creat(+)按钮,输入需要的环境,之后点击另外一个creat 安装其他的库步骤 ...
最新文章
- 2010年12月blog汇总:敏捷个人
- 经典算法题每日演练——第十九题 双端队列
- 轻松搭建基于 SpringBoot Vue 的 Web 商城应用
- Linux cut用法
- LeetCode Hot100 ---- 回溯算法专题
- 寻找随机的错误-一个真实的故事
- 最优化学习笔记(十五)——拟牛顿法(1)
- 新东方:俞敏洪个人博客文章不代表公司观点 半年报即将发布
- 12月江苏计算机考试报名入口,江苏2019年12月计算机等级报名时间丨报名系统
- 【开源】OSharp3.0框架解说系列(6.2):操作日志与数据日志
- mysqls为node.js而编写的sql语句生成插件 crud for mysql.
- JavaScript常见设计模式梳理
- Java调用MQ队列
- 卸载掉360之后无法删除360safe文件夹解决办法!
- GPS经纬度一直不会改变的解决方法
- webrtc---桌面共享原理
- html5流媒体多浏览器,PearPlayer流媒体播放器 v2.5.6(开源HTML5流媒体播放框架)
- 用JAVA制作抓老鹰游戏_Java制作最难练手速游戏,Faker都坚持不了一分钟
- 一位美国教授给研究生的怎样记读书笔记的建议(中文总结)
- laravel软连接访问文件失效解决办法php artisan storage:link