[Python] 解决 "opencv dll load failed" 问题
起因:测试同事提出 某环境安装设计器后, 运行任意组件均报错。
排查步骤
1. 图片中可以看到报错信息:import opencv-python 时 dll 加载失败
2. 由同一个 iso 镜像安装系统, 版本号是 Windows10 Enterprise N
Windows N editions are specifically designed for Europe and Switzerland to comply with European laws and standards. The N stands for Not with Media Player and does not come with Windows Media Player pre-installed.
即此 windows10 Enterprise N 版本 设计之初 即去除 Media 功能。
3. 分析:
- (1) 个人电脑运行正常,近期设计器无更新 —> 证明是 系统问题
- (2) 重启问题环境,再次运行, 运行失败。—> 证明是 必现问题
- (3) 卸载 opencv-pythob, 重新安装, 运行失败 —> opencv 安装成功, 证明与第三库无关,需排查系统问题
3. 查阅资料
查到 stackoverflow 帖子
方法 1 pip install opencv-contrib-python
未尝试 (我表示我没看到这个方法····,以后有机会再尝试)
方法 2 Microsoft 帖子, 选择对应的版本,找到特定版本的安装页面, 按教程操作,安装Media Feature Pack即可。 (需重启机器)
4. 插曲
第一个系统环境, 按照 Microsoft 教程,安装补丁包即可正常。
但是第二个环境,发现 "add a feature" 清单内没有 "Media feature pack" 选项。 查阅诸多资料,均无可行方法。
https://answers.microsoft.com/en-us/windows/forum/all/i-am-unable-to-install-windows-media-feature-pack/b9709d2b-6140-42e8-973f-f3bca0426d59?page=2 在此页面看到”升级系统“, 所以尝试升级系统。
升级系统后,即可看到 "Media feature pack" 选项 :)
刚刚在一台全新的环境,测试方法 1。
发现 设计器已经安装了 opencv-contrib-python, 升级到最新版本,运行失败。
卸载 opencv-contrib-python 并重新安装, 运行失败。
报错信息 发生了变化
总结: 方法一无效。