导入 cv2 时出现 DLL 加载失败错误
- 2025-02-18 09:23:00
- admin 原创
- 163
问题描述:
我已经使用 python 3.6 在我的 Windows 机器上安装了 opencv,没有任何问题,使用:
pip install opencv-python
但是当我尝试导入 cv2 时出现以下错误
ImportError: DLL load failed: The specified module could not be found.
我看过这个帖子
它说 cv2 不适用于 python 3,我想知道这个问题是否已经修复,或者是否有解决方法
解决方案 1:
我花了很多时间来解决这个错误!运行命令
pip install opencv-contrib-python
解决方案 2:
您可以在 Windows 32 位或 64 位计算机上下载适用于 Python 3.6 的最新 OpenCV 3.2.0,opencv_python‑3.2.0‑cp36‑cp36m
从此非官方网站查找以 开头的文件。然后键入以下命令进行安装:
pip install opencv_python‑3.2.0‑cp36‑cp36m‑win32.whl
(32 位版本)pip install opencv_python‑3.2.0‑cp36‑cp36m‑win_amd64.whl
(64 位版本)
我认为这样会更容易。
2017-09-15更新:
OpenCV 3.3.0
wheel 文件现在可以在非官方网站获得,并被替换OpenCV 3.2.0
。
2018-02-15更新:
OpenCV 3.4.0
wheel 文件现在可以在非官方网站获得,并被替换OpenCV 3.3.0
。
2018-06-19更新:
OpenCV 3.4.1
wheel 文件现在可在非官方网站获得支持CPython 3.5/3.6/3.7
,并可替换OpenCV 3.4.0
。
2018-10-03更新:
OpenCV 3.4.3
wheel 文件现在可在非官方网站获得支持CPython 3.5/3.6/3.7
,并可替换OpenCV 3.4.1
。
2019-01-30更新:
OpenCV 4.0.1
现在,非官方网站可以获取 wheel 文件并CPython 3.5/3.6/3.7
提供支持。
2019-06-10更新:
OpenCV 3.4.6
并且OpenCV 4.1.0
wheel 文件现在可在非官方网站上获取并提供CPython 3.5/3.6/3.7
支持。
2023-02-11更新:
OpenCV 4.5.5
现在,非官方网站可以获取 wheel 文件并CPython 3.7/3.8/3.9/3.10/3.11
提供支持。
解决方案 3:
如果您使用 Anaconda python 3.5
,那么这是 Anaconda 版本中的一个问题。(请参阅此问题)
python3.dll
您可以通过将文件复制到Anaconda3
文件夹(位于python.exe
)来解决此问题
如何获取“python3.dll”
在 中
cmd
,输入python --version
以查找您的安装是 64 位还是 32 位从此处下载 Python 3.x 可嵌入 zip 文件
解压 zip 文件并将
python3.dll
文件复制到Anaconda3
文件夹
但如果您可以移动,Anaconda
那么python 3.6
您就不会遇到此问题。如果您可以,那么这是推荐的方法。
解决方案 4:
最近我在 Azure Windows Server 2012 r2中遇到了类似的问题。尝试了所有选项(包括 Anaconda 和不包含 Anaconda),但都没有帮助。经过大量查找,我发现缺少与 Window Media Service 相关的mfplat.dll 。
因此,您必须手动安装这些功能,以便可以获得与 Windows Media Service 相关的 dll。
1.打开或关闭 Windows 功能
2.跳过角色屏幕,直接进入功能屏幕
3.选择“用户界面和基础设施”下的“桌面体验”
此后,opencv 媒体服务所需的所有 dll 都将可用。
因此,如果您计划在云(Windows Server)中运行代码,请不要忘记选择桌面体验功能。
解决方案 5:
我在Windows 10 (N)上遇到了这个问题,当时我安装了基于 Python 3.7(OpenCV 版本 4.0)的 Anaconda。上述建议均无济于事(例如从非官方网站安装 OpenCV 或安装 VC Redistributable)。
我根据这个 github 问题...AppDataLocalcondacondaenvsooLibsite-packagescv2cv2.cp37-win_amd64.pyd
检查了使用的 DLL 依赖项。我注意到一个库,我发现它属于 Windows Media Foundation。dumpbin.exe
`MF.dll`
因此我安装了 适用于 Windows 10 N 版本的媒体功能包,然后问题就解决了!
解决方案 6:
在这个问题上花费了大量时间并尝试了所有不同的答案之后,发现了以下结果:
@thewaywewere 接受的答案不再适用。我认为这在 opencv-python 模块仍然不可用时适用。
这确实是 Anaconda 4.2 中的一个错误,因为他们忘记发送 python3.dll。他们已在下一版本中修复了这个问题,但不幸的是 4.2 是最后一个默认使用 Python 3.5 的版本。如果您坚持使用 Python 3.5(例如 VS2015 仅识别最高 3.5 的版本),那么您必须按照 @Ramesh-X 的回答中所述手动下载 python3.dll。
如果您可以继续使用 Python 3.6(如果您使用 OpenCV 和 VS2015,目前这有点困难),那么只需安装最新的 Anaconda 版本,您不必处理任何这些问题。
解决方案 7:
对此有很多问题和建议。对于最近的 Opencv 3.4.16 和 Python 3.6/3.7,它们都没有帮助我。最后我切换到 Pyhon 2.7.15 并安装了 opencv 3.1.0。DLL 问题解决了。
当我使用依赖项遍历器查看 cv2.pyd 时,3.1 对一个缺失的 dll 没有依赖性。Opencv 3.4对此 dll有缺失的依赖性:
API-MS-WIN-DOWNLEVEL-SHLWAPI-L1-1-0.DLL
这可能是问题所在。
PS:我有Win7专业版64位,32位Python 2.7.15
解决方案 8:
就我而言,Windows 10 的主要更新删除了一些 Windows 软件包,因此其他方法(重新安装 opencv 等)没有帮助。要修复它,请安装:
a)适用于 Visual Studio 2015、2017 和 2019 的 Microsoft Visual C++ 可再发行组件
b) N 版本的媒体功能包- 仅当您拥有 Windows 10 N 时才需要
两者都需要重新启动电脑。
解决方案 9:
坦白说,这里有很多非常聪明和复杂的答案。我的答案既愚蠢又简单。我删除了我的 conda 环境,从头开始重新安装,费尽心思先安装 opencv。这解决了我的问题。环境应该是临时的和透明的——不要太依赖。
因此,如果首先调用我的环境,fubar
请确保每个实例都已停用(包括正在使用它的任何 IDE)。然后将其删除:
conda remove --name fubar --all
现在我只需重新创建我的环境并先添加 opencv:
conda create --name fubar
conda activate fubar
conda install opencv
然后从那里开始。首先打开 python 并确保它import cv2
可以工作。然后你就可以开始了。注意我总是(总是)最后安装 Spyder,因为如果我不这样做,它往往会把事情搞砸。
注意,如果这不起作用,我们遇到过一些情况,人们必须卸载并重新安装 Anaconda,然后一切才能恢复正常。显然这是最后的手段。
解决方案 10:
发生这种情况是因为编译器或解释器正在查找该文件的多个包,删除所有相同的包,然后只保留一个,然后尝试安装。它的作用是
解决方案 11:
该问题是由于python3.dll
Anaconda3 中缺少文件造成的。
要修复此问题,您只需将其复制python3.dll
到C:Program FilesAnaconda3
(或安装Anaconda3的任何位置)。
您可以通过下载Python 发布页面python3.dll
底部提供的二进制文件并从 ZIP 文件中提取来获取。python3.dll
解决方案 12:
我在使用 python 3.6(Anaconda3) 和 OpenCV 3.4.1 时也遇到了同样的问题,spyder 无法正常工作。即使将 cv2.pyd 复制到 Anaconda3 Users/home/Anaconda3/Lib/site-packages 后,它仍然不起作用。
但找到了解决办法
后来我在 Anaconda 上安装了 OpenCV 和 Dlib,并将生成的 cv2.cp36-win_amd64.pyd 和 dlib.cp36-win_amd64.pyd 复制到 Anaconda3 Users/home/Anaconda3/Lib/site-packages 中。这些可以从环境文件夹 C:\Users\home\Anaconda3\envs\opencv\Lib\site-packages 复制。
最终 spyder 开始工作
解决方案 13:
就我而言,我必须安装旧版本的 openCV(Windows 10,Python 3.6.8)
pip install opencv-python==3.3.0.9
解决方案 14:
此错误可能是由于缺少以下 dll 导致的
要安装此 dll:
https: //www.microsoft.com/en-us/software-download/mediafeaturepack,
如上所述
解决方案 15:
在 anaconda 4.10.1 环境中从 windows 10 powershell 运行 python 3.8.8 我安装了 opencv
conda 安装 opencv
当我从命令行启动 python 时,我可以毫无问题地导入 opencv。
然而,当我尝试使用我已激活的特定 anaconda 环境的 python 解释器从 pydev 内部运行代码时,pydev 找不到导入 opencv 时正在寻找的任何 dll。
设置以下环境变量解决了该问题:
CONDA_DLL_SEARCH_MODIFICATION_ENABLE=1
来源: 从 Conda 环境运行时,PyDev/Eclipse 未加载 _mklinit
其中指向针对不同库加载问题的故障排除描述:https://docs.conda.io/projects/conda/en/latest/user-guide/troubleshooting.html#numpy-mkl-library-load-failed
解决方案 16:
我遇到了同样的问题,似乎 openCV 需要 Windows Media Feature pack,而 Windows 10 N 默认未安装该包,请使用以下链接安装它:
https://www.microsoft.com/en-us/software-download/mediafeaturepack
解决方案 17:
我设法通过在新环境中安装 python 3.9.12(使用 conda),然后在该环境中安装 opencv来使其工作。由于我的 python 版本,安装的是 opencv 版本 4.5.5,而不是版本 4.60。
(我已经更新了 VC2015-2022 并将 python3.dll 添加到 PATH;但这些都不起作用。)
解决方案 18:
我遇到了同样的问题,无法使用不同的 python 或 opencv 版本来解决它。
最后我发现我缺少以下 DLL 文件:MFPlat.DLL、MF.dll 和 MFReadWrite.dll。我使用 Dependencies 工具(https://github.com/lucasg/Dependencies)对环境中 Lib/sitepackages/opencv 中的 opencv.pyd 进行了识别。
显然,安装 Windows Media Feature Pack 应该可以解决这个问题,但对我来说不行(我使用 Windows 11 N)。然后我不得不修复我的 Visual C++ Redistributable Installation 才能再次安装它们。
仅仅运行一些计算机视觉就带来巨大的麻烦。
解决方案 19:
我在 Anaconda3(Python 3.6)上安装 opencv 2.4.13 时遇到了同样的问题...我设法通过恢复到 Anaconda2(Python 2.7)解决了这个问题
解决方案 20:
我有同样的问题。当我安装 WinPython 编程并从我的 opencv 目录复制 cv2.pyd 文件后运行 opencv 时,它将如下所示:C:\Users.....\Downloads\opencv\build\python\2.7d,x64 或 x86 取决于您的 32 位或 64 位设备。并粘贴到 C:\Users.....\Downloads\WinPython-64bit-3.5.4.1Qt5\python-3.5.4.amd64\Lib\site-packages,我更喜欢以前的 python 3.5 而不是 3.6。因为当我“导入 cv2”安装(python 3.6)时,它直接显示:“ImportError:DLL 加载失败:找不到指定的模块”然后我安装 python 3.5 并打开 WinPyhton 命令提示符并输入“pip install opencv-python”。
命令提示符自动下载 opencv,显示如下过程“已成功安装 opencv-python-3.3.0.10”
最后,我尝试通过输入“import cv2”来运行打开的 cv,它起作用了,我尝试输入“cv2.version ”,并显示:“3.3.0”
解决方案 21:
在 Winpython 下:Winpython-64bit-.../python_.../DLLs
文件cv2.pyd
应重命名为的目录_cv2.pyd
解决方案 22:
(基础)C:\WINDOWS\system32>conda 安装 C:\Users\Todd\Downloads\opencv3-3.1.0-py35_0.tar.bz2
我从https://anaconda.org/menpo/opencv3/files下载版本后,从 anaconda 终端运行此命令
这是我能让 cv2 工作的唯一方法,我花了两天时间尝试了所有方法。
解决方案 23:
如果这对某人有帮助,在官方的 python 3.6 windows docker 镜像上,为了使这个东西工作,我必须从我的桌面复制以下库:
目录:C:\windows\system32
aepic.dll
avicap32.dll
avifil32.dll
avrt.dll
Chakra.dll
CompPkgSup.dll
CoreUIComponents.dll
cryptngc.dll
dcomp.dll
devmgr.dll
dmenterprisediagnostics.dll
dsreg.dll
edgeIso.dll
edpauditapi.dll
edputil.dll
efsadu.dll
efswrt.dll
ELSCore.dll
evr.dll
ieframe.dll
ksuser.dll
mf.dll
mfasfsrcsnk.dll
mfcore.dll
mfnetcore.dll
mfnetsrc.dll
mfplat.dll
mfreadwrite.dll
mftranscode.dll
msacm32.dll
msacm32.drv
msvfw32.dll
ngcrecovery.dll
oledlg.dll
policymanager.dll
RTWorkQ.dll
shdocvw.dll
webauthn.dll
WpAXHolder.dll
wuceffects.dll
目录:C:\windows\SysWOW64
aepic.dll
avicap32.dll
avifil32.dll
avrt.dll
Chakra.dll
CompPkgSup.dll
CoreUIComponents.dll
cryptngc.dll
dcomp.dll
devmgr.dll
dsreg.dll
edgeIso.dll
edpauditapi.dll
edputil.dll
efsadu.dll
efswrt.dll
ELSCore.dll
evr.dll
ieframe.dll
ksuser.dll
mfasfsrcsnk.dll
mfcore.dll
mfnetcore.dll
mfnetsrc.dll
mfplat.dll
mfreadwrite.dll
mftranscode.dll
msacm32.dll
msvfw32.dll
oledlg.dll
policymanager.dll
RTWorkQ.dll
shdocvw.dll
webauthn.dll
wuceffects.dll`
解决方案 24:
请记住,如果你想为 Windows 安装 Python 包/库,
你应该始终考虑使用Python 非官方二进制文件
步骤 1:
搜索你的软件包,下载依赖版本 2.7 或 3.6,你可以在 Downloads/your_package_version.whl 下找到它。python wheel
第 2 步:
现在使用 pip 安装,
pip install ~/Downloads/your_packae_ver.whl
这将能够顺利安装,不会出现任何错误。
解决方案 25:
我遇到了同样的问题,花了整整三天时间解决它。我尝试了所有建议的方法:升级 pip、更新 Visual C++、更新 Anaconda、手动下载文件以及我在网上找到的所有解决方案。以下是最终奏效的方法,也许它能帮助其他人:
1-我放弃了基于 Python 3 和 Anaconda 的下载,因为我注意到它们存在几个问题,所以下载了 64 位的 Python 2.7.16。
2-导航到驱动器上 Pip 所在的位置(对我来说,路径是 C:\Python27\Scripts)通过选择它突出显示路径,然后键入“cmd”,然后输入以便命令提示符在该路径上打开(我注意到跳过这一步通常会导致几个错误)
3-python -m pip install --upgrade pip
使用CMD更新 Pip (再次,跳过此步骤并且不更新它不会让该过程通过)
4-Wheel
从https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv下载相应的文件(尝试了几个之后,我发现对我有用的是 opencv_python-2.4.13.7-cp27-cp27m-win_amd64.whl)我将其复制粘贴到 Pip 所在的同一文件夹中(对我来说是 C:\Python27\Scripts),然后通过 CMD 安装它:pip install opencv_python-2.4.13.7-cp27-cp27m-win_amd64.whl
。始终通过 CMD 在该路径上打开,如步骤 2 所示
5-在步骤 4 之后,当我使用导入 OpenCV 时,import cv2
不再出现 DLL 错误,而是出现与 numpy 相关的错误(因为我刚刚安装了该版本的 Python,因此尚未安装 Numpy)。我通过键入安装了 numpy pip install numpy
,然后就好了!问题解决了,OpenCV 导入正确。
希望这对某人有帮助。
解决方案 26:
如果您正在使用没有 GUI 的服务器或 docker 环境(例如 Windows Core Server),请确保使用无头版本的 cv2:
pip install opencv-contrib-python-headless
解决方案 27:
Windows 11 N
对于不使用 anaconda 的人来说,这是最后的修复。
只是缺少 DLL 文件,仅此而已
下载最新版本
https://sourceforge.net/projects/opencvlibrary/
然后,解压后搜索.dll 文件并将其全部复制并粘贴到 C:\Windows\System32 并同意替换。
就是这样 !
解决方案 28:
在 Windows 10 上使用基于虚拟环境的 python(3.11.4)脚本,我使用以下命令成功安装了 OpenCV 4.8.1.78 -
pip install opencv-python
请注意,由于某种原因,此安装的是 win_amd64 版本。到目前为止,它运行良好!
解决方案 29:
在我的 Docker Windows 容器中,上述所有操作均不起作用,因为我无法安装 Windows Media Feature Pack,它可能在我的容器中不可用。
我设法找出了丢失的 dll,它们是:
动态链接库
内核模块
驱动平台
读写文件工具
C:WindowsSystem32
(您可以在之前安装了媒体功能包的正常 Windows 11 安装中找到它们)。
然后我得到了COPY
4 个 dll,感谢我的Dockerfile
:
COPY install\\*.dll C:\\Windows\\System32\\
解决方案 30:
使用以下方式安装 python:
pip install opencv-python(将采用最新版本)
确保 opencv-python 安装在路径(\Python\Python36\Lib\site-packages)中,您将在那里找到 cv2 文件夹。
检查 cv2 的版本:import cv2 print(cv2.__version__)
扫码咨询,免费领取项目管理大礼包!