导入cv2(opencv)时出现“ DLL加载失败”

时间:2018-09-15 23:20:17

标签: python opencv image-processing cv2

我花了很多时间来解决这个问题,但找不到解决方案,请提供任何您想与我分享的线索。

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

pip install opencv-contrib-python

已安装,没有任何错误。
以及当我尝试导入

import cv2

告诉我这个错误:

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.

,我看到了有关此错误的另一个主题,但是他们的解决方案对我不起作用: -DLL load failed error when importing cv2
-Failure to import cv2 in python : DLL load failed
-和here中的许多页面

他们中的一些人说这个问题是因为水蟒,我什至没有水蟒。许多人说问题32或64版本,我都尝试并感到失望。关于系统变量的很多...
什么dll无法加载? cv2?为什么?

  

到目前为止我要尝试什么:
  -更改86x和64x中的python版本:3.5、3.7、2.7(卸载完整的最新版本,并删除程序文件中的所有剩余文件...然后安装新的)
  -尝试使用其他软件包,例如:opencv-python,opencv-contrib,尝试使用.whl安装特定版本(在某些主题中,我了解了此内容,因此请安装 numpy-1.14.5 + mkl-cp37-cp37m-win_amd64.whl opencv_python-3.4.3 + contrib-cp37-cp37m-win_amd64.whl ,但没有任何变化)
  -在每项测试的cv2之前导入numpy
  -已安装64x的Microsoft Visual C ++ 2015 Redistributable Update 3,2008,2010,2017

请帮助我。  

更新
接下来的2天
我尝试根据以下文章中提到的 dependency walker 来管理丢失的dll,下载所有dll并将其放入系统32中,这是一个很好的提示,但不能解决问题。

第4,5天
下一步,尝试在计算机上编译OpenCV,安装Visual Studio 2012 + cmake,并基于document编译2版本(64x和32),编译本身存在很多问题(例如,缺少c lang中的一些lib和需求)安装适用于Visual Studio 2012的 Visual C ++ Redistributable ...),然后解决所有问题,然后我有2个成功的编译版本,但都存在缺少dll的相同问题,即编译过程是如此缓慢,我需要2天的时间。因此,如果执行此任务失败:/我正在寻找新的方法...

第六天
我的下一步是尝试在具有docker的计算机上运行OpenCV(我尝试但docker Windows仅安装在Windows 10和Windows Server 2016上),所以我寻找了替代方法。我发现Vagrant的工作原理类似于docker,但今天使用VM(可视框)来花时间,这真是太神奇了,docker和vagrant的概念是如此吸引人,并且像这样玩,我有一个新的难题:) 出现第一个错误...而无限错误继续出现:/

第7天
流浪测试也失败了,因为我的Windows Server 2012是一台vb机器(可视服务器),并且在另一个可视框中无法运行可视框! 所以我需要新的线索:(

第8-9天
尝试在VMware上安装vagrant,我下载了VMware,很遗憾,此插件不是免费的(79 $),所以我尝试使用pythonanywhere.com来让您访问已安装了完整Python环境的计算机。 在这个免费帐户中,您无法使用urllib打开URL,并且还有更多限制... 所以我想自己在VMware中安装ubuntu ...下班后,我在这里阅读了结果。由于相同的原因vb(视觉框)是不可能的

17 个答案:

答案 0 :(得分:7)

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

首选解决方案是将功能部件包安装在:https://www.microsoft.com/en-us/software-download/mediafeaturepack

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

如果这不是一种选择,请回退到不具有dll依赖项的OpenCV的早期版本,您可以通过以下方式实现:{{1}}

自从Windows推出了N版本以来,这个问题已在很多地方出现,并且在整个Windows环境中产生了许多影响,如果您说有HTML5媒体,则在Edge浏览器中打开youtube是确定您是否遇到此问题的最快方法。找不到插件,这就是问题所在。

答案 1 :(得分:4)

我有相同的错误(尽管我自己编译了OpenCV),在我的情况下,缺少一些DLL依赖项。您可以使用程序Dependency Walker进行检查。

下载Dependency Walker并运行它,然后使用Dependency Walker打开文件 cv2.pyd ,如果正确安装了pip软件包,则该文件应位于C:\Program Files\Python37\lib\site-packages\cv2\中。

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

答案 2 :(得分:2)

您可以尝试卸载opencv并使用wheel文件安装它吗? Here是一个拥有针对Windows编译的许多版本的OpenCV的网站,搜索所需的版本,并只需使用pip命令进行安装。

因此,如果您具有Python 3.6(64位)并希望安装OpenCV 3.4.3,请下载wheel文件: opencv_python‑3.4.3‑cp36‑cp36m‑win_amd64.whl

答案 3 :(得分:2)

我在 Windows 上遇到了这个问题。我通过检查说明 here 解决了这个错误。

问:Windows 上导入失败:ImportError:DLL 加载失败:找不到指定的模块?

A:如果在 Windows 上导入失败,请确保您有 Visual C++ redistributable 2015 已安装。 如果您使用的是比 Windows 10 更旧的 Windows 版本并且未安装最新的系统更新,则可能还需要 Universal C Runtime。

Windows N 和 KN 版本不包括 OpenCV 所需的媒体功能包。如果您使用的是 Windows N 或 KN 版本,请同时安装 Windows Media Feature Pack

答案 4 :(得分:2)

Python 3.7可能不支持某些模块。

  • 尝试安装python 3.6.4
  • 使用命令提示符,“ pip install opencv”或“ pip install opencv-python”
  • 导入cv2

答案 5 :(得分:1)

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

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

  1. 打开或关闭Windows功能
  2. 跳过角色屏幕,直接转到功能屏幕
  3. 在“用户界面和基础结构”下选择“桌面体验”

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

答案 6 :(得分:1)

阅读大量答案和文章后,我遇到了同样的问题“ DLL加载失败”。

我不知道这对您是否有用,请尝试一下。

我使用的工具和版本:anaconda-5.3.1,python-3.7,win 10(64位)

我执行的步骤:

步骤1 :我从here安装了opencv 3.4.4 然后解压缩到C盘中(您可以在任何位置进行操作)

步骤2 :将cv2.pyd文件从此处的[C:\ opencv \ build \ python \ cv2 \ python-3.7]复制到[C:\ Users \“用户名” \ Anaconda3 \ Lib \ site-packages]。

第3步:运行 dependency walker 来检测哪些 dll 文件丢失, 在我的情况下运行Dependency Walker后,它显示两个DLL文件未加载,分别是(1)OPENCV_WORLD344.DLL和(2)IESHIMS.DLL。 我不知道您的情况,但是您可以执行以下操作->使用依赖关系遍历程序查找文件名,然后找到其路径并按照步骤4进行操作。

step4 :打开系统属性->高级->环境变量,现在编辑路径并添加C:\ opencv \ build \ x64 \ vc14 \ bin(在我的情况下,这是OPENCV_WORLD344的位置.DLL已存储),然后在python中导入cv2。

如果我的答案不起作用,请添加评论。

答案 7 :(得分:1)

经过15天的头脑风暴,此解决方案对我有效。而且我相信它也会为您服务。我安装了anaconda以使用OpenCV 3.1.0。我遵循以下步骤:

1)我已经安装了使用Python 3.7的anaconda-5.3 64位安装程序(614.3 MB)。您可以从以下链接下载anaconda:https://www.anaconda.com/download/#windows

2)安装anaconda后,通过在Windows“开始”按钮上键入“ anaconda提示符”来打开anaconda提示符。用“以管理员身份运行”打开。

3)您必须创建新的环境才能安装和使用OpenCV模块。编写以下命令来创建和激活新的环境:
>conda create --name myNewEnv python=3.5.0
>activate myNewEnv
“ myNewEnv”是新环境的名称。

4)现在,您需要安装OpenCV的先决条件(即numpy),然后再安装opencv3。在执行以下命令之前启动Internet:
>conda install numpy
>conda install anaconda-client
>conda install --channel https://conda.anaconda.org/menpo opencv3

5)已安装OpenCV3。现在,通过执行以下命令来验证安装:
(myNewEnv) C:\Users\Nilesh> python
>>>import cv2
>>>cv2.__version__

要再次第二次启动OpenCV3,请按照以下步骤操作:

1)从开始菜单中以“以管理员身份运行”权限打开“ anaconda命令提示符”
2)输入命令>激活your_new_environment_name
3)假设您要运行桌面上的文件,为此,请编写以下命令:
> cd C:\Users\Nilesh\Desktop
4)现在您的工作目录是Desktop。
5)键入以下命令以运行任何代码(例如test.py)。
> python test.py
注意:这里的python表示版本3。

我希望这个解决方案对您有用。

答案 8 :(得分:1)

我在Windows Server 2012 R2 x64上遇到了同样的问题。我正在使用PyInstaller创建可执行文件,但在运行时出错:

ImportError: DLL load failed: The specified module could not be found.

在安装“ Visual C ++可再发行组件” 2015并启用“ Media Foundation”功能后,我的问题已解决。

文档中有更多信息:OpenCV Documentation

答案 9 :(得分:0)

除了我正在使用Anaconda3之外,我有类似的问题,下面的代码可以解决此问题:

conda install -c anaconda py-OpenCV

答案 10 :(得分:0)

对我来说效果很好。* 答案是需要将cv2.pyd文件放入您的虚拟环境。 需要放在两个envs文件夹下,

  • 第一位于DLLS文件夹下, 第二在Lib / site-packages下

要获取cv2.pyd>,请从此链接https://sourceforge.net/projects/opencvlibrary/下载,然后解压缩下载文件

您将获得opencv文件夹,然后进入opencv文件夹,如Downloads \ opencv \ build \ python \ 2.7,然后根据您的32或64窗口版本进入更深的文件夹

复制cv2.pyd重要**** 将cv2.pyd文件复制到环境后,需要将cv2.pyd重命名为_cv2.pyd

答案 11 :(得分:0)

打开Anaconda Prompt,选择所需路径,然后输入

pip install opencv-contrib-python

希望这会有所帮助。

答案 12 :(得分:0)

它可以帮助我pip install opencv-contrib-python Anaconda Prompt,python 3.7.1 cv2 4.1.1

答案 13 :(得分:0)

我遇到了同样的问题。我通过降级打开的简历解决了该错误。

pip install opencv-python==3.3.0.9

答案 14 :(得分:0)

我在Windows Server 2008R2全新安装上遇到了这个问题,花了将近一天的时间来解决,因为尝试了许多成功和试验之后,我终于找到了互联网上某个地方的解决方案(不是stackoverflow)

  • 安装了适用于2008R2的Windows Media Feature Pack,然后安装了服务器管理器->功能->添加功能->桌面体验
  • 服务器管理器->功能->添加功能->桌面体验 以及墨水和手写服务。

除了检查清单之外

  • Visual C ++可再发行的2015
  • 通用C运行时

希望它可以节省时间

答案 15 :(得分:0)

安装Python 3.6版,然后使用以下命令安装opencvpip install opencv-python==3.3.0.9为我解决了这个问题

答案 16 :(得分:0)

您需要的是python 3.6。 我一直在寻找最近3天的解决方案,当我安装python 3.6.7时我的问题已解决。 安装python 3.6之后,您只需运行pip install opencv-python。 来源:https://www.geeksforgeeks.org/setup-opencv-with-pycharm-environment/