导入cv2时出现DLL加载失败错误
DLL load failed error when importing cv2
我已经使用 python 3.6 在我的 windows 机器上安装了 opencv,没有任何问题,使用:
pip install opencv-python
但是当我尝试导入 cv2 时出现以下错误
ImportError: DLL load failed: The specified module could not be found.
我看过
它说 cv2 不适用于 python 3 我想知道这个问题是否已修复或是否有解决方法
您可以在 Windows 32 位或 64 位机器上为 Python 3.6 下载最新的 OpenCV 3.2.0,查找以 opencv_python‑3.2.0‑cp36‑cp36m
开头的文件,从这个 unofficial site。然后键入以下命令进行安装:
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 文件现在在 unofficial site 中可用并替换了 OpenCV 3.2.0
.
2018-02-15更新:
OpenCV 3.4.0
wheel 文件现在在 unofficial site 中可用并替换了 OpenCV 3.3.0
.
2018-06-19更新:
OpenCV 3.4.1
wheel 文件现在可以在 unofficial site 中使用 CPython 3.5/3.6/3.7
支持,并替换 OpenCV 3.4.0
.
2018-10-03更新:
OpenCV 3.4.3
wheel 文件现在可以在 unofficial site 中使用 CPython 3.5/3.6/3.7
支持,并替换 OpenCV 3.4.1
.
2019-01-30更新:
OpenCV 4.0.1
wheel 文件现在可以在 unofficial site 中使用 CPython 3.5/3.6/3.7
支持。
2019-06-10更新:
OpenCV 3.4.6
和 OpenCV 4.1.0
wheel 文件现在可以在 unofficial site 中使用 CPython 3.5/3.6/3.7
支持。
如果您将 Anaconda 与 python 3.5
一起使用,这是 Anaconda 版本中的一个问题。 (参考这个issue)
您可以通过将 python3.dll
文件复制到 Anaconda3
文件夹(python.exe
所在的位置)来解决此问题
如何获得"python3.dll"
- 在
cmd
中,键入 python --version
以查找您的安装是 64 位还是 32 位
- 从 here
下载 python 3.x 可嵌入的 zip 文件
- 解压缩 zip 文件并将
python3.dll
文件复制到 Anaconda3
文件夹
但是如果你可以移动到 Anaconda
和 python 3.6
你就不会遇到这个问题。如果你可以的话,那么这是推荐的方式..
我在 Anaconda3 (Python 3.6) 上安装 opencv 2.4.13 时遇到了同样的问题...我通过恢复到 Anaconda2 (Python 2.7)[=10 设法解决了这个问题=]
在这个问题上花了太多时间并尝试了所有不同的答案后,发现了以下内容:
@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 版本,您就不必处理与其中任何一个。
我也遇到了同样的问题。当我安装 WinPython 编程时,从我的 opencv 目录复制 cv2.pyd 文件后 运行 opencv,它将是这样的:C:\Users.....\Downloads\opencv\build\python.7\x64、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。因为我"import cv2"安装的时候(python3.6)直接显示:"ImportError: DLL load failed: The specified module could not be found"
然后我安装 python 3.5 并打开 WinPyhton 命令提示符并键入 "pip install opencv-python".
命令提示符自动下载opencv,显示过程如下"Successfully installed opencv-python-3.3.0.10"
最后,我尝试 运行 按类型 "import cv2" 打开 cv,它起作用了
我尝试输入 "cv2.version",并显示:“3.3.0”
安装 python 使用:
- pip install opencv-python(需要最新版本)
确保opencv-python安装在路径(\Python\Python36\Lib\site-packages),
你会在那里找到cv2文件夹。
查看cv2版本:
导入cv2
打印(cv2.__version__)
我花了很多时间来解决这个错误!
运行 命令
pip install opencv-contrib-python
在 Winpython 下:Winpython-64bit-.../python_.../DLLs
目录中的文件 cv2.pyd
应该重命名为 _cv2.pyd
发生这种情况是因为编译器或解释器发现文件的多个包,删除所有相同包的数量,然后只保留一个,然后尝试安装。它服务
(base) C:\WINDOWS\system32>conda 安装 C:\Users\Todd\Downloads\opencv3-3.1.0-py35_0.tar.bz2
我 运行 从 anaconda 终端下载这个版本后的这个命令
https://anaconda.org/menpo/opencv3/files
这是让 cv2 工作的唯一方法,我尝试了两天的所有方法。
问题是由于 Anaconda3 中缺少 python3.dll
文件。
要解决此问题,您只需将 python3.dll
复制到 C:\Program Files\Anaconda3
(或安装 Anaconda3 的任何位置)。
您可以通过下载 Python's Release page 底部提供的二进制文件并从 ZIP 文件中提取 python3.dll
来获得 python3.dll
。
对此有很多疑问,也有很多建议。 None 帮助我完成了最近的 Opencv 3.4.16 和 Python 3.6/3.7。
最后我切换到 Pyhon 2.7.15 并安装了 opencv 3.1.0。 DLL 问题已解决。
当我使用 dependency walker 查看 cv2.pyd 时,3.1 与缺少的 dll 没有依赖关系。 Opencv 3.4 有 缺少对这个 dll 的依赖:
API-MS-WIN-DOWNLEVEL-SHLWAPI-L1-1-0.DLL
可能是这个问题。
P.S.: 我有 Win7 专业版 64 位、32 位 Python 2.7.15
我在使用 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复制到Anaconda3Users/home/Anaconda3/Lib/site-packages中。这些可以从环境文件夹 C:\Users\home\Anaconda3\envs\opencv\Lib\site-packages 复制。
spyder终于开始工作了
最近我在 Azure Windows Server 2012 r2 中遇到了类似的问题。尝试了有和没有 Anaconda 的所有选项,但 none 有帮助。经过大量调查后,我发现缺少 mfplat.dll,这与 Window 媒体服务有关。
因此您必须手动安装这些功能,以便您可以获得与 window 媒体服务相关的 dll。
1.Turn windows 开启或关闭功能
2.Skip角色界面直接进入功能界面
3.Select "Desktop Experience" "User Interfaces and Infrastructure"
在此之后,所有需要的 opencv 媒体服务 dll 都将可用。
因此,如果您打算 运行 您的代码在云端(Window 服务器),那么请不要忘记 select 桌面体验功能。
如果这对某人有帮助,在官方 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`
如果要为 windows、
安装 python package/libraries,请记住
你应该始终考虑 Python unofficial Binaries
第 1 步:
搜索你的包,下载依赖版本 2.7 或 3.6 你可以在 Downloads/your_package_version 下找到它。whl 它叫做 python wheel
第 2 步:
现在使用 pip 安装,
pip install ~/Downloads/your_packae_ver.whl
这将安装而不会出现任何错误。
我 运行 在 Windows 10 (N) 上使用基于 Python 3.7(OpenCV 版本)的新 Anaconda 安装解决了这个问题4.0)。 None 上述建议有所帮助(例如从非官方站点安装 OpenCV 或安装 VC Redistributable)。
我根据 this github issue 使用 dumpbin.exe
检查了 ...\AppData\Local\conda\conda\envs\foo\Lib\site-packages\cv2\cv2.cp37-win_amd64.pyd
的 DLL 依赖项。我注意到一个图书馆 MF.dll
,我认为它属于 Windows Media Foundation。
所以我 安装了 Media Feature Pack for N versions of Windows 10 瞧,问题解决了!
我遇到了同样的问题,并花了整整 3 天的时间来解决这个问题。我尝试了所有建议:升级 pip、更新 Visual C++、更新 Anaconda、手动下载文件以及基本上我可以在网上找到的所有解决方案。这是最终起作用的方法,也许它会对其他人有所帮助:
1- 我放弃了 Python 3 和基于 Anaconda 的下载,因为我注意到它们有几个问题并下载了 Python 2.7.16 64 位相反。
2- 导航到 Pip 在我的驱动器上的位置(对我来说路径是 C:\Python27\Scripts)通过选择它突出显示路径,然后键入 "cmd" 然后输入命令提示符在该路径上打开(我注意到跳过这通常会带来一些错误)
3- 在 CMD 上使用 python -m pip install --upgrade pip
更新了 Pip(同样,跳过它而不更新它并没有让这个过程通过)
4- 从 https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv 下载了合适的 Wheel
文件(尝试了几次后,对我有用的是 opencv_python-2.4.13 .7-cp27-cp27m-win_amd64.whl) 我将它复制粘贴到 Pip 所在的同一文件夹(对我来说是 C:\Python27\Scripts),然后使用 pip install opencv_python-2.4.13.7-cp27-cp27m-win_amd64.whl
通过 CMD 安装它。始终通过 CMD 在该路径上打开,如步骤 2
所示
5- 在第 4 步之后,当我使用 import cv2
导入 OpenCV 时,我不再有 DLL 错误,而是与 numpy 相关的错误(因为我刚刚安装了 Python 的那个版本,所以 Numpy 还没有安装)。我通过输入 pip install numpy
和 voilà 安装了 numpy!问题已解决,OpenCV正确导入。
希望这对某人有所帮助。
坦率地说,这里有很多非常聪明和复杂的答案。我的是愚蠢和简单的。我删除了我的conda环境,re-installed从头开始,煞费苦心先安装opencv。这解决了我的问题。环境应该是暂时的和透明的——不要太依恋。
因此,如果我的环境被调用 fubar
,首先确保每个实例都已停用(包括正在使用它的任何 IDE)。然后删除它:
conda remove --name fubar --all
现在我只是重新创建我的环境并首先添加 opencv:
conda create --name fubar
conda activate fubar
conda install opencv
然后从那里开始。首先打开 python 并确保 import cv2
有效。那么你应该上路了。请注意,我总是(总是)最后安装 Spyder,因为当我不这样做时它往往会把事情搞砸。
请注意,如果这不起作用,我们遇到过一些情况,人们必须卸载并重新安装 Anaconda,然后一切正常。显然是不得已而为之。
就我而言,我必须安装旧版本的 openCV(windows 10,Python 3.6.8)
pip install opencv-python==3.3.0.9
在我的例子中,Windows 10 的主要更新删除了一些 Windows 包,因此其他方法(重新安装 opencv 等)没有帮助。要修复它,请安装:
a) Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017 and 2019
b) Media Feature Pack for N versions - 只有当你有 Windows 10 N
时才需要
都需要重启电脑
此错误可能是由于缺少以下dll造成的
要安装此 dll:
https://www.microsoft.com/en-us/software-download/mediafeaturepack
如上所述
运行 python 来自 windows 的 3.8.8 来自 anaconda 4.10.1 环境的 10 powershell 我用
安装了 opencv
conda 安装 opencv
当我从命令行启动 python 时,我可以毫无问题地导入 opencv。
但是,当我尝试使用 python 解释器从 pydev 内部为我激活的特定 anaconda 环境编写代码时,pydev 找不到它在导入时要查找的任何 dll opencv.
设置以下环境变量解决了问题:
CONDA_DLL_SEARCH_MODIFICATION_ENABLE=1
来源:PyDev/Eclipse not loading _mklinit when run from a Conda environment
这指向另一个库加载问题的故障排除描述:https://docs.conda.io/projects/conda/en/latest/user-guide/troubleshooting.html#numpy-mkl-library-load-failed
如果您使用的是没有 gui 的服务器或 docker 环境(例如 Windows 核心服务器),请确保您使用的是 cv2 的无头版本:
pip install opencv-contrib-python-headless
我已经使用 python 3.6 在我的 windows 机器上安装了 opencv,没有任何问题,使用:
pip install opencv-python
但是当我尝试导入 cv2 时出现以下错误
ImportError: DLL load failed: The specified module could not be found.
我看过
它说 cv2 不适用于 python 3 我想知道这个问题是否已修复或是否有解决方法
您可以在 Windows 32 位或 64 位机器上为 Python 3.6 下载最新的 OpenCV 3.2.0,查找以 opencv_python‑3.2.0‑cp36‑cp36m
开头的文件,从这个 unofficial site。然后键入以下命令进行安装:
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 文件现在在 unofficial site 中可用并替换了 OpenCV 3.2.0
.
2018-02-15更新:
OpenCV 3.4.0
wheel 文件现在在 unofficial site 中可用并替换了 OpenCV 3.3.0
.
2018-06-19更新:
OpenCV 3.4.1
wheel 文件现在可以在 unofficial site 中使用 CPython 3.5/3.6/3.7
支持,并替换 OpenCV 3.4.0
.
2018-10-03更新:
OpenCV 3.4.3
wheel 文件现在可以在 unofficial site 中使用 CPython 3.5/3.6/3.7
支持,并替换 OpenCV 3.4.1
.
2019-01-30更新:
OpenCV 4.0.1
wheel 文件现在可以在 unofficial site 中使用 CPython 3.5/3.6/3.7
支持。
2019-06-10更新:
OpenCV 3.4.6
和 OpenCV 4.1.0
wheel 文件现在可以在 unofficial site 中使用 CPython 3.5/3.6/3.7
支持。
如果您将 Anaconda 与 python 3.5
一起使用,这是 Anaconda 版本中的一个问题。 (参考这个issue)
您可以通过将 python3.dll
文件复制到 Anaconda3
文件夹(python.exe
所在的位置)来解决此问题
如何获得"python3.dll"
- 在
cmd
中,键入python --version
以查找您的安装是 64 位还是 32 位 - 从 here 下载 python 3.x 可嵌入的 zip 文件
- 解压缩 zip 文件并将
python3.dll
文件复制到Anaconda3
文件夹
但是如果你可以移动到 Anaconda
和 python 3.6
你就不会遇到这个问题。如果你可以的话,那么这是推荐的方式..
我在 Anaconda3 (Python 3.6) 上安装 opencv 2.4.13 时遇到了同样的问题...我通过恢复到 Anaconda2 (Python 2.7)[=10 设法解决了这个问题=]
在这个问题上花了太多时间并尝试了所有不同的答案后,发现了以下内容:
@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 版本,您就不必处理与其中任何一个。
我也遇到了同样的问题。当我安装 WinPython 编程时,从我的 opencv 目录复制 cv2.pyd 文件后 运行 opencv,它将是这样的:C:\Users.....\Downloads\opencv\build\python.7\x64、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。因为我"import cv2"安装的时候(python3.6)直接显示:"ImportError: DLL load failed: The specified module could not be found" 然后我安装 python 3.5 并打开 WinPyhton 命令提示符并键入 "pip install opencv-python".
命令提示符自动下载opencv,显示过程如下"Successfully installed opencv-python-3.3.0.10"
最后,我尝试 运行 按类型 "import cv2" 打开 cv,它起作用了 我尝试输入 "cv2.version",并显示:“3.3.0”
安装 python 使用:
- pip install opencv-python(需要最新版本)
确保opencv-python安装在路径(\Python\Python36\Lib\site-packages), 你会在那里找到cv2文件夹。
查看cv2版本: 导入cv2 打印(cv2.__version__)
我花了很多时间来解决这个错误! 运行 命令
pip install opencv-contrib-python
在 Winpython 下:Winpython-64bit-.../python_.../DLLs
目录中的文件 cv2.pyd
应该重命名为 _cv2.pyd
发生这种情况是因为编译器或解释器发现文件的多个包,删除所有相同包的数量,然后只保留一个,然后尝试安装。它服务
(base) C:\WINDOWS\system32>conda 安装 C:\Users\Todd\Downloads\opencv3-3.1.0-py35_0.tar.bz2
我 运行 从 anaconda 终端下载这个版本后的这个命令 https://anaconda.org/menpo/opencv3/files
这是让 cv2 工作的唯一方法,我尝试了两天的所有方法。
问题是由于 Anaconda3 中缺少 python3.dll
文件。
要解决此问题,您只需将 python3.dll
复制到 C:\Program Files\Anaconda3
(或安装 Anaconda3 的任何位置)。
您可以通过下载 Python's Release page 底部提供的二进制文件并从 ZIP 文件中提取 python3.dll
来获得 python3.dll
。
对此有很多疑问,也有很多建议。 None 帮助我完成了最近的 Opencv 3.4.16 和 Python 3.6/3.7。 最后我切换到 Pyhon 2.7.15 并安装了 opencv 3.1.0。 DLL 问题已解决。
当我使用 dependency walker 查看 cv2.pyd 时,3.1 与缺少的 dll 没有依赖关系。 Opencv 3.4 有 缺少对这个 dll 的依赖:
API-MS-WIN-DOWNLEVEL-SHLWAPI-L1-1-0.DLL
可能是这个问题。
P.S.: 我有 Win7 专业版 64 位、32 位 Python 2.7.15
我在使用 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复制到Anaconda3Users/home/Anaconda3/Lib/site-packages中。这些可以从环境文件夹 C:\Users\home\Anaconda3\envs\opencv\Lib\site-packages 复制。
spyder终于开始工作了
最近我在 Azure Windows Server 2012 r2 中遇到了类似的问题。尝试了有和没有 Anaconda 的所有选项,但 none 有帮助。经过大量调查后,我发现缺少 mfplat.dll,这与 Window 媒体服务有关。
因此您必须手动安装这些功能,以便您可以获得与 window 媒体服务相关的 dll。
1.Turn windows 开启或关闭功能
2.Skip角色界面直接进入功能界面
3.Select "Desktop Experience" "User Interfaces and Infrastructure"
在此之后,所有需要的 opencv 媒体服务 dll 都将可用。
因此,如果您打算 运行 您的代码在云端(Window 服务器),那么请不要忘记 select 桌面体验功能。
如果这对某人有帮助,在官方 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`
如果要为 windows、
安装 python package/libraries,请记住你应该始终考虑 Python unofficial Binaries
第 1 步:
搜索你的包,下载依赖版本 2.7 或 3.6 你可以在 Downloads/your_package_version 下找到它。whl 它叫做 python wheel
第 2 步:
现在使用 pip 安装,
pip install ~/Downloads/your_packae_ver.whl
这将安装而不会出现任何错误。
我 运行 在 Windows 10 (N) 上使用基于 Python 3.7(OpenCV 版本)的新 Anaconda 安装解决了这个问题4.0)。 None 上述建议有所帮助(例如从非官方站点安装 OpenCV 或安装 VC Redistributable)。
我根据 this github issue 使用 dumpbin.exe
检查了 ...\AppData\Local\conda\conda\envs\foo\Lib\site-packages\cv2\cv2.cp37-win_amd64.pyd
的 DLL 依赖项。我注意到一个图书馆 MF.dll
,我认为它属于 Windows Media Foundation。
所以我 安装了 Media Feature Pack for N versions of Windows 10 瞧,问题解决了!
我遇到了同样的问题,并花了整整 3 天的时间来解决这个问题。我尝试了所有建议:升级 pip、更新 Visual C++、更新 Anaconda、手动下载文件以及基本上我可以在网上找到的所有解决方案。这是最终起作用的方法,也许它会对其他人有所帮助:
1- 我放弃了 Python 3 和基于 Anaconda 的下载,因为我注意到它们有几个问题并下载了 Python 2.7.16 64 位相反。
2- 导航到 Pip 在我的驱动器上的位置(对我来说路径是 C:\Python27\Scripts)通过选择它突出显示路径,然后键入 "cmd" 然后输入命令提示符在该路径上打开(我注意到跳过这通常会带来一些错误)
3- 在 CMD 上使用 python -m pip install --upgrade pip
更新了 Pip(同样,跳过它而不更新它并没有让这个过程通过)
4- 从 https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv 下载了合适的 Wheel
文件(尝试了几次后,对我有用的是 opencv_python-2.4.13 .7-cp27-cp27m-win_amd64.whl) 我将它复制粘贴到 Pip 所在的同一文件夹(对我来说是 C:\Python27\Scripts),然后使用 pip install opencv_python-2.4.13.7-cp27-cp27m-win_amd64.whl
通过 CMD 安装它。始终通过 CMD 在该路径上打开,如步骤 2
5- 在第 4 步之后,当我使用 import cv2
导入 OpenCV 时,我不再有 DLL 错误,而是与 numpy 相关的错误(因为我刚刚安装了 Python 的那个版本,所以 Numpy 还没有安装)。我通过输入 pip install numpy
和 voilà 安装了 numpy!问题已解决,OpenCV正确导入。
希望这对某人有所帮助。
坦率地说,这里有很多非常聪明和复杂的答案。我的是愚蠢和简单的。我删除了我的conda环境,re-installed从头开始,煞费苦心先安装opencv。这解决了我的问题。环境应该是暂时的和透明的——不要太依恋。
因此,如果我的环境被调用 fubar
,首先确保每个实例都已停用(包括正在使用它的任何 IDE)。然后删除它:
conda remove --name fubar --all
现在我只是重新创建我的环境并首先添加 opencv:
conda create --name fubar
conda activate fubar
conda install opencv
然后从那里开始。首先打开 python 并确保 import cv2
有效。那么你应该上路了。请注意,我总是(总是)最后安装 Spyder,因为当我不这样做时它往往会把事情搞砸。
请注意,如果这不起作用,我们遇到过一些情况,人们必须卸载并重新安装 Anaconda,然后一切正常。显然是不得已而为之。
就我而言,我必须安装旧版本的 openCV(windows 10,Python 3.6.8)
pip install opencv-python==3.3.0.9
在我的例子中,Windows 10 的主要更新删除了一些 Windows 包,因此其他方法(重新安装 opencv 等)没有帮助。要修复它,请安装:
a) Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017 and 2019
b) Media Feature Pack for N versions - 只有当你有 Windows 10 N
时才需要都需要重启电脑
此错误可能是由于缺少以下dll造成的
要安装此 dll: https://www.microsoft.com/en-us/software-download/mediafeaturepack 如上所述
运行 python 来自 windows 的 3.8.8 来自 anaconda 4.10.1 环境的 10 powershell 我用
安装了 opencvconda 安装 opencv
当我从命令行启动 python 时,我可以毫无问题地导入 opencv。
但是,当我尝试使用 python 解释器从 pydev 内部为我激活的特定 anaconda 环境编写代码时,pydev 找不到它在导入时要查找的任何 dll opencv.
设置以下环境变量解决了问题:
CONDA_DLL_SEARCH_MODIFICATION_ENABLE=1
来源:PyDev/Eclipse not loading _mklinit when run from a Conda environment
这指向另一个库加载问题的故障排除描述:https://docs.conda.io/projects/conda/en/latest/user-guide/troubleshooting.html#numpy-mkl-library-load-failed
如果您使用的是没有 gui 的服务器或 docker 环境(例如 Windows 核心服务器),请确保您使用的是 cv2 的无头版本:
pip install opencv-contrib-python-headless