Win7 64位导入opencv提示“ImportError: DLL load failed: 找不到指定的模块。”
Win7 64位导入opencv提示“ImportError: DLL load failed: 找不到指定的模块。”
由于安装的是Ghost版的win7,总是有这样那样莫名其妙的问题,最近准备使用OpenCV处理做深度学习图像处理,安装opencv都没有任何异常,导入时候就提示:
from .cv2 import *
ImportError: DLL load failed: 找不到指定的模块。
网上方法一(失败):
大多是说安装的opencv版本与Python版本不兼容,我查看过,我的是Python3.6,不管pip还是pycharm安装的版本都是opencv_python-3.4.2.17,是吻合的。为了避免不对,卸载后在网上下载了opencv_python-3.4.2.17-cp36-cp36m-win_amd64.whl到本地安装,结果问题依旧。
网上方法二(失败):
也有很多网上帖子说是安装一下microsoft Visual C++ distributed 2015 X64的,但从添加删除程序里看,我是已经安装了的。
方法三:使用depends软件查看究竟缺失什么DLL(成功)
下载地址:http://www.dependencywalker.com/
下载后,用软件打开Opencv安装目录(目录名称是cv2,我的目录在Anaconda的虚拟环境下面:C:\Users\Administrator\venv2\Lib\site-packages\cv2)的cv2.cp36-win_amd64.pyd,于是软件提示缺失了两个DLL,就是下图中黄色的两个:
于是用everything在电脑中查找,其中IEShims.dll可以找到,在我的电脑:C:\Windows\winsxs\amd64_microsoft-windows-ie-ieshims_31bf3856ad364e35_8.0.7601.17514_none_c06d7c9c27da8591下,看路径应该是64位版本的。
api-ms-win-downlevel-shlwapi-l1-1-0.dll在电脑中找不到,百度上下载了一个。
抱着尝试的心情将这两个DLL复制到opencv路径下,再次用depends查看如下:
已经没有黄色叹号不满足依赖的情况。
在终端中:
可以看到opencv导入成功,问题得到解决,可以愉快的玩耍了,哈哈哈!这个软件果然很强大,以后凡是DLL缺失的都可以用它来寻找解决线索。