首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >导入cv2时"DLL加载失败“(opencv)

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

Stack Overflow用户
提问于 2018-09-15 23:20:17
回答 18查看 46.7K关注 0票数 22

在windows 2012 R2 x64中,python3.7 64x

代码语言:javascript
运行
复制
pip install opencv-contrib-python

安装时没有任何错误。

当我试图导入它时

代码语言:javascript
运行
复制
import cv2

告诉我这个错误:

代码语言:javascript
运行
复制
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.

我看到了关于这个错误的另一个话题,但是他们的解决方案对我来说行不通:

有些人说这个问题是因为蟒蛇,而我甚至连水蟒都没有。很多人说,问题32或64版本,我尝试和失望。很多关于系统变量..。

什么dll未能加载?cv2?为什么?

到目前为止,我尝试的是:

  • 更改python版本: 3.5,3.7,2.7在86x和64x (卸载完整的最后版本,并删除程序文件中的所有保留文件.然后安装新的)
  • 尝试使用其他包,如: opencv-python、opencv-cont肋骨,尝试使用.whl安装特定版本(在我所读到的一些主题中,请安装numpy-1.14.5+mkl-cp37-cp37m-win_amd64.whlopencv_python-3.4.3+contrib-cp37-cp37m-win_amd64.whl,但任何内容都不会更改)
  • 每次测试在cv2之前导入numpy
  • 安装了微软Visual C++ 2015可再发行更新3,2008,2010,2017,用于64x

更新

未来2天

我试图在下面的文章中提到的依赖者的基础上来管理缺失的dll,下载所有的dll并将它们放到system 32中,这是一个很好的线索,但并不能解决问题。

日4,5

我的下一步,尝试在我的机器上编译OpenCV,安装visual 2012 + cmake,基于文档编译2版本,64x和32,编译本身就有很多问题(比如缺少c lang中的一些库,需要安装Visual 2012的VisualC++可再发行版.)我解决了所有这些问题,然后我有两个成功的编译版本,但两者在缺少dll时都有相同的问题,编译过程非常缓慢,给了我2天的时间。所以如果这次任务失败了:/我在寻找一种新的方式.

DAY 6

我的下一步是尝试在我的计算机上使用docker运行OpenCV (我尝试了,但是docker只是安装在windows 10和windows server 2016上),所以我寻找另一种选择。我发现Vagrant像码头一样工作,但是今天我用VM (可视盒)花时间写这篇文章,太棒了,对接者和流浪汉的概念是如此的吸引人,我玩这个游戏就像我有一个新的谜题:)第一个错误显示在.无限的错误继续存在:

Day 7

迷航测试也失败了,因为我的windows server 2012是一台vb机器(可视化服务器),在另一个可视框中运行一个可视框是不可能的!所以我需要新线索:

日8-9

尝试使用VMware安装迷航器,我下载VMware,不幸的是,这个插件不是免费的(79美元),所以我尝试使用pythonanywhere.com,它允许您访问已经安装完整Python环境的机器。在这个自由的帐户里,你不能用urllib打开openurl,还有更多的限制.所以我想试着在VMware上安装ubuntu .下班后我在这里读到了结果。基于同样的原因,vb (可视框)是不可能的。

EN

回答 18

Stack Overflow用户

回答已采纳

发布于 2019-01-23 06:40:13

如果您使用的是windows 10N发行版,则不会预装windows媒体功能包,这是在OpenCV版本3.4及以后需要的。

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

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

如果这不是一个选项,则返回到不具有dll依赖项的较早版本的OpenCV,您可以通过:pip install opencv-python=3.3.0.9执行此操作。

自从windows推出N版以来,这个问题在许多地方都有出现,并且对整个windows环境产生了许多影响,识别这个问题的最快方法是在边缘浏览器中打开youtube,如果说没有找到HTML5媒体插件,这就是问题所在。

更新2020年5月:有一种新的方式来安装Windows10N的媒体包。

https://support.microsoft.com/en-us/help/4562569/media-feature-pack-for-windows-10-n-may-2020

票数 32
EN

Stack Overflow用户

发布于 2018-09-15 23:46:06

我也有同样的错误(尽管我自己编译了OpenCV ),在我的例子中缺少一些DLL依赖项。您可以使用程序依赖沃克来检查这一点。

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

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

票数 7
EN

Stack Overflow用户

发布于 2018-11-05 15:43:45

我在Windows 2012 r2中也遇到过类似的问题。经过大量的调查,我发现mfplat.dll缺失了,这与有关。

因此,您必须手动安装这些特性,以便获得与窗口媒体服务相关的dll。

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

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

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52349669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档