问题说明
记录一次实际开发中的opencv、numpy、scipy版本报错问题,问题情况如下:
- ImportError: DLL load failed while importing cv2:找不到指定的模块
- ImportError: numpy.core.multiarray failed to import
- OSError [WinError 127]找不到指定的程序。:"\site-packages\scipy\.libs"
- win7系统、32位
解决结果
- numpy 1.17.3
- opencv-python 4.4.0.46
- scipy 1.4.0
总结debug经验
一个半小时解决的debug过程如下:
- 一开始是numpy报错,也就是问题2,所以使用了安装卸载numpy的方案,但是没有用!依然是这个报错,没有出现其他报错!
- 所以联想到是什么依赖了numpy,看问题2报错信息是
from cv2 import *
,因此是opencv-python库。一开始使用的是opencv4.5.1.48,所以opencv更新到最新之后,出现问题一报错。 - 网上有个博主推荐了常用版本opencv-python 4.4.0.46,安装之后,
提示信息numpy版本>=1.17.3
,靠谱方案直接装了numpy1.17.3,运行之后出现了问题3报错。 - 更新了最新的scipy,版本竟然也是1.17.3,我还以为是numpy关联了版本。后来仔细一想,
如果numpy关联了scipy,拉取numpy1.17.3版本时就会拉取对应的scipy版本
。到pypi官网上一看,果然,只是巧合!
- 问题3依然出现。
联想到scipy既然是依赖numpy,所以numpy1.17.3版本的发布时间是19-10-17,那这个时间之后的scipy版本或许可以!
发现正好同一天有个版本scipy1.4.0,安装之后,测试果然ok!
numpy:
scipy:
总结
这个版本是我在win7系统,32位电脑上使用的,看到网上还有各种方案,什么scipy依赖MKL的等等。建议小伙伴们遇到问题时,一定要仔细思考报错信息,最好记录下自己解决问题的思路,以避免方案太多,不知道哪些试过哪些没有试过。或许解决结果对你用处不大,但是debug的整个思路是我想要表达的,希望大家遇到问题不要放弃,尽可能去尝试,加油!以上就是解决问题的全部内容啦,有用的话点赞收藏!