导入cv2(opencv)时"DLL加载失败"

Neo*_*son 11 python opencv image-processing cv2

我花了很多时间来解决这个问题,但我找不到解决方案,请告诉你任何与我分享的线索.

在[Windows Server 2012 R2 x64,python 3.7 64x]中

pip install opencv-contrib-python
Run Code Online (Sandbox Code Playgroud)

安装没有任何错误.
当我尝试导入它

import cv2
Run Code Online (Sandbox Code Playgroud)

告诉我这个错误:

Traceback (most recent call last):
  File "test.py", line 1, in <module>
    import cv2
  File "C:\Program Files\Python37\lib\site-packages\cv2\__init__.py", line 3, in
 <module>
    from .cv2 import *
ImportError: DLL load failed: The specified module could not be found.
Run Code Online (Sandbox Code Playgroud)

我看到另一个关于这个错误的话题,但是他们的解决方案对我不起作用:
- 导入cv2时DLL加载失败错误
- 无法在python中导入cv2:DLL加载失败
- 这里 有很多页面,

其中有些人说这个问题,因为蟒蛇,我甚至没有anaconda.很多人说问题32或64版本,我尝试两个并且失望.许多关于系统变量...
什么dll无法加载?CV2?为什么?

我到现在为止尝试:
- 更改python版本:86x和64x中的3.5,3.7,2.7(卸载完成最后一个版本并删除程序文件中的所有剩余文件...然后安装新文件)
- 尝试使用其他软件包,例如:opencv- python,opencv-contrib,尝试使用.whl安装特定版本(在某些主题中我读到了这个,所以安装numpy-1.14.5 + mkl-cp37-cp37m-win_amd64.whlopencv_python-3.4.3 + contrib-cp37-cp37m -win_amd64.whl但是没有任何改变)
- 在cv2之前为每次测试导入numpy
- 安装了Microsoft Visual C++ 2015 Redistributable Update 3,2008,2010,2017 for 64x

请帮我.

更新
下一个2天
我尝试管理在bellow post中提到的依赖性walker的缺失dll基础,下载所有并将它们放入系统32,它是一个很好的线索,但没有解决问题. 第4,5天 我的下一步,尝试在我的机器上编译OpenCV,安装visual studio 2012 + cmake并基于文件编译2版本,64x和32,编译本身有很多问题(比如从c lang中缺少一些lib并且需要为Visual Studio 2012安装Visual C++ Redistributable ...)并且我解决了所有这些问题,然后我有2个成功的编译版本,但两个都有相同的问题,丢失,编译过程太慢,并给我2天.所以,如果失败了这个任务:/我寻找新的方式......第 6天 我的下一步是尝试在我的机器上使用docker运行OpenCV(我尝试但是docker windows只安装在Windows 10和Windows Server 2016上)所以我寻找另一种选择.我发现Vagrant像docker一样工作,但今天用虚拟机(视觉框)我的时间花在这篇文章上,这太棒了,docker和vagrant的概念非常有吸引力,我玩这个就像我有新的拼图:)第一个错误显示...并且无限错误继续:/ 第7天 Vagrant测试失败,因为我的Windows Server 2012是一台vb机器(可视服务器)并且在另一个视觉框中运行视觉盒子是不可能的!所以我需要:(新的线索天8-9 尝试安装流浪汉与VMware,我下载的VMware,遗憾的是这个插件是不是免费的($ 79),所以我尝试一起工作pythonanywhere.com"让你访问的机器采用了全已经安装了Python环境.'在这个免费帐户中,你不能使用urllib进行openurl,并且更多限制......所以我想尝试在VMware中安装ubuntu我自己......我在这里读完了结果.这是不可能的同样的原因vb(视觉框) dll


dll










ana*_*ngh 17

如果您使用的是Windows 10 N发行版,并且Windows Media功能包未预安装N发行版,则可能会发生这种情况,这在OpenCV 3.4版及更高版本之后是必需的。

首选的解决方案是在以下位置安装功能部件包:https : //www.microsoft.com/zh-cn/software-download/mediafeaturepack

请小心选择适用于当前Windows版本的版本。

如果这不是一种选择,请回退到没有dll依赖项的OpenCV的早期版本,可以通过以下方法实现:pip install opencv-python=3.3.0.9

自从Windows推出N版本以来,这个问题已在很多地方出现,并且在整个Windows环境中产生了很多影响,因此,如果没有找到HTML5媒体插件,则可以通过Edge浏览器打开youtube来确定是否存在此问题。 , 这就是问题。

  • 尝试了下面的所有选项后(我没有尝试这个,因为我无法在 W2012-R2 上安装 mediafeaturepack,并且 opencv-python==3.3.0.9 无法在 Python 3.7 上安装),唯一有效的方法正在卸载 3.7,安装 python 3.6,*然后*运行 `pip install opencv-python==3.3.0.9` (3认同)
  • 使用pip安装opencv-python == 3.3.0.9对我有用,谢谢!我在Windows 10计算机上使用Anaconda 3,python 3.5.6。 (2认同)

cuz*_*uzi 6

我有同样的错误(虽然我自己编译了 OpenCV),在我的例子中缺少一些 DLL 依赖项。您可以使用程序Dependency Walker进行检查。

下载Dependency Walker并运行,用Dependency Walker打开文件cv2.pydC:\Program Files\Python37\lib\site-packages\cv2\如果pip包安装正确,应该就在里面。

该程序然后扫描依赖项(这可能需要几分钟),然后以红色显示丢失的 DLL 文件。


小智 6

我在 Windows Server 2012 r2 中遇到过类似的问题。经过大量调查后,我发现缺少与 Window Media Service 相关的 mfplat.dll。

因此,您必须手动安装这些功能,以便您可以获取与窗口媒体服务相关的 dll。

  1. 打开或关闭 Windows 功能
  2. 跳过角色界面,直接进入功能界面
  3. 在“用户界面和基础设施”下选择“桌面体验”

在此之后,所有必需的 opencv dll 都将可用。