windows7,python使用cv2模块的问题ImportError: DLL load failed: 找不到指定的模块。”

时间:2024-03-24 11:37:48

一定一定要记录一下这个问题,对于一个python的小白小白的我,折磨了我一天半的时间才解决!!

事情的起因是学习airtest,官方文档介绍说可以在python环境运行.air脚本,于是开始了python相关环境的折腾;

首先,我的电脑上在之前就安装了python2的环境,环境也应该都是正常的,跟着airtest的官方文档,安装了相关packgages后,输入脚本运行命令,还是报错,于是开启了解决征程

windows7,python使用cv2模块的问题ImportError: DLL load failed: 找不到指定的模块。”

airtest官方网建议用python3,我这边python2跟着官方方式解决问题,并没有什么卵用,最后放弃python2,怀疑是python版本问题

尝试1:卸载python2,安装python3,安装后并没有什么卵用,继续一样的问题排查

在网上查找很多资料后,了解到,运行.air脚本会用的cv2模块,上图的模块就是cv2模块导致的问题,引用cv2时就是该错误,如图

windows7,python使用cv2模块的问题ImportError: DLL load failed: 找不到指定的模块。”

 

尝试2:网上说openvc版本应该与python版本兼容,通过pip安装、网上安装对应版本后,问题仍然存在

尝试3:安装c++ 2017进行安装:https://download.csdn.net/download/x_uhen/10616545,安装后问题仍然存在

尝试4:安装numpy和opencv_python包放到python的site_packages下(下载地址https://www.lfd.uci.edu/~gohlke/pythonlibs/),或者pip安装即可,下载后问题仍然存在

尝试5:python中缺少python3.dll文件,查看我的python安装模块,没有问题,不缺少

尝试6:使用depends软件查看缺失了什么DLL(失败)

             下载地址:http://www.dependencywalker.com/

             下载后使用软件打开python下cv2目录下的cv2.cp36-win_amd64.pyd文件(我的在C:\Users\Administrator\AppData\Local\Programs\Python\Python36\Lib\site-packages\cv2),软件提示缺失了两个DLL,就是图中黄色的两个:

windows7,python使用cv2模块的问题ImportError: DLL load failed: 找不到指定的模块。”

于是在电脑中查找,两个文件都没有,在百度上下载了对应系统的两个dll文件,放到了对应的系统文件下,结果depends显示api-ms-win-downlevel-shlwapi-l1-1-0.dll的文件还是找不到,IEShims.dll已经找到了,于是将api-ms-win-downlevel-shlwapi-l1-1-0.dll文件复制到cv2路径下,再次用depends查看没有问题,如图:

windows7,python使用cv2模块的问题ImportError: DLL load failed: 找不到指定的模块。”

这里我的电脑是64位的系统,复制的也是64的dll文件,却提示不是有效的win32应用程序,于是就替换了文件为win32的dll,结果再次尝试:

windows7,python使用cv2模块的问题ImportError: DLL load failed: 找不到指定的模块。”

成功!!!成功!!

结果问题就是,我的电脑系统确实dll文件,并且安装后,python识别不了电脑路径,从而找不到其中一个dll文件,索性将dll文件放到python对应目录下解决!!!呵呵.....

参考文章:

https://blog.csdn.net/qq_36986305/article/details/81673901

https://blog.csdn.net/u012318074/article/details/78840747

https://blog.csdn.net/cskywit/article/details/81513066