[Python] 解决 "opencv dll load failed" 问题

起因:测试同事提出 某环境安装设计器后, 运行任意组件均报错。

[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    在此页面看到”升级系统“, 所以尝试升级系统。
[Python] 解决 "opencv dll load failed" 问题
升级系统后,即可看到 "Media feature pack" 选项 :)