我已经使用 python 3.6 在我的 Windows 机器上安装了 opencv,没有任何问题,使用:
pip install opencv-python
但是当我尝试导入 cv2 时出现以下错误
ImportError: DLL load failed: The specified module could not be found.
我看过这个帖子
它说 cv2 不适用于 python 3 我想知道这是否已修复或者是否有解决方法
我花了很多时间来解决这个错误!运行命令
pip install opencv-contrib-python
您可以在 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
车轮文件现在可以在非官方网站上找到并替换OpenCV 3.2.0
.
2018-02-15 更新:
OpenCV 3.4.0
车轮文件现在可以在非官方网站上找到并替换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
车轮文件现在可以在非官方网站上获得CPython 3.5/3.6/3.7
支持。
2019-06-10 更新:
OpenCV 3.4.6
和OpenCV 4.1.0
轮文件现在可以在非官方网站上获得CPython 3.5/3.6/3.7
支持。
如果您将 Anaconda 与 一起使用python 3.5
,则这是 Anaconda 版本中的一个问题。(参考这个问题)
您可以通过将文件复制python3.dll
到Anaconda3
文件夹(所在python.exe
位置)来解决此问题
cmd
中,键入python --version
以查找您的安装是 64 位还是 32 位python3.dll
到Anaconda3
文件夹但如果你能搬来搬去Anaconda
,python 3.6
你就不会面临这个问题。如果可能的话,那么这是推荐的方式..
最近我在 Azure Windows Server 2012 r2中遇到了类似的问题。尝试了有和没有 Anaconda 的所有选项,但没有一个有帮助。经过大量发现后,我发现与 Window Media Service 相关的mfplat.dll丢失了。
因此,您必须手动安装这些功能,以便您可以获得与窗口媒体服务相关的 dll。
1.打开或关闭windows功能
2.跳过角色界面,直接进入功能界面
3.在“用户界面和基础设施”下选择“桌面体验”
在此之后,opencv 所需的所有媒体服务 dll 都将可用。
因此,如果您计划在云(Window Server)中运行您的代码,请不要忘记选择桌面体验功能。
我在Windows 10 (N)上使用基于 Python 3.7(OpenCV 版本 4.0)的新 Anaconda 安装遇到了这个问题。上述建议都没有帮助(例如从非官方站点安装 OpenCV 或安装 VC Redistributable)。
我根据这个 github 问题...\AppData\Local\conda\conda\envs\foo\Lib\site-packages\cv2\cv2.cp37-win_amd64.pyd
检查了使用的 DLL 依赖项。我注意到一个库,我发现它属于 Windows Media Foundation。dumpbin.exe
MF.dll
所以我安装 了 N 个版本的 Windows 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 版本,您就不必处理任何这些。
对此有许多问题和许多建议。对于最近的 Opencv 3.4.16 和 Python 3.6/3.7,他们都没有帮助我。最后我切换到 Pyhon 2.7.15 并安装了 opencv 3.1.0。DLL 问题已解决。
当我使用依赖项walker 查看 cv2.pyd 时,3.1 对缺少的一个 dll 没有依赖项。Opencv 3.4缺少对这个 dll 的依赖:
API-MS-WIN-DOWNLEVEL-SHLWAPI-L1-1-0.DLL
可能这就是问题所在。
PS:我有 Win7 专业的 64Bit,32Bit Python 2.7.15
坦率地说,这里有很多非常聪明和复杂的答案。我的是愚蠢而简单的。我删除了我的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,然后一切正常。显然是最后的手段。
就我而言,Windows 10 的重大更新删除了一些 Windows 软件包,因此其他方法(重新安装 opencv 等)没有帮助。要修复它,请安装:
a)适用于 Visual Studio 2015、2017 和 2019 的 Microsoft Visual C++ Redistributable
b) N 版本的媒体功能包- 仅当您拥有 Windows 10 N 时才需要
两者都需要重新启动PC。
在 Anaconda3 (Python 3.6) 上安装 opencv 2.4.13 时我遇到了同样的问题...我设法通过恢复到 Anaconda2 (Python 2.7) 来解决这个问题
发生这种情况是因为编译器或解释器找到了多个文件包,删除所有相同包的数量,然后只保留一个,然后尝试安装。它服务
问题是由于python3.dll
Anaconda3 中缺少文件。
要解决此问题,您只需将其复制python3.dll
到C:\Program Files\Anaconda3
(或安装Anaconda3的任何位置)。
您可以通过下载Python 发布页面python3.dll
底部提供的二进制文件并从 ZIP 文件中解压缩来获取。python3.dll
我在 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开始工作了
我也有同样的问题。当我安装 WinPython 编程,并在从我的 opencv 目录复制 cv2.pyd 文件后运行 opencv 时,它将是这样的:C:\Users.....\Downloads\opencv\build\python\2.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”(python 3.6)时,它直接显示:“ImportError: DLL load failed: The specified module could not be found” 然后我安装 python 3.5 并打开 WinPyhton 命令提示符并键入“pip install opencv-python” .
命令提示符自动下载opencv,它显示这样的过程“成功安装opencv-python-3.3.0.10”
最后,我尝试通过输入“import cv2”来运行 open cv,它可以工作,我尝试输入“cv2.version ”,并显示:'3.3.0'
在 Winpython 下:Winpython-64bit-.../python_.../DLLs
文件cv2.pyd
应重命名为的目录_cv2.pyd
(基础)C:\WINDOWS\system32>conda install C:\Users\Todd\Downloads\opencv3-3.1.0-py35_0.tar.bz2
从https://anaconda.org/menpo/opencv3/files下载版本后,我从 anaconda 终端运行了这个命令
这是我可以让 cv2 工作的唯一方法,我尝试了两天。
如果这有助于某人,在官方 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 包/库,
您应该始终考虑Python 非官方二进制文件
第1步:
搜索你的包,下载依赖版本 2.7 或 3.6 你可以在 Downloads/your_package_version.whl 下找到它python wheel
第2步:
现在使用 pip 安装,
pip install ~/Downloads/your_packae_ver.whl
这将安装没有任何错误。
我遇到了同样的问题,花了整整 3 天的时间来解决它。我尝试了所有建议的方法:升级 pip、更新 Visual C++、更新 Anaconda、手动下载文件以及基本上我可以在网上找到的所有解决方案。这是最终奏效的方法,也许它会帮助其他人:
1-我放弃了基于 Python 3 和 Anaconda 的下载,因为我注意到它们存在一些问题,而是下载了 Python 2.7.16 64 位。
2-导航到Pip在我的驱动器上的位置(对我来说路径是C:\ Python27 \ Scripts)通过选择它突出显示路径,然后输入“cmd”然后输入,以便命令提示符在该路径上打开(我注意到跳过这通常会带来几个错误)
3-在 CMD 上使用更新的 Pip python -m pip install --upgrade 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),然后通过 CMD 使用:. 始终通过在该路径上打开的 CMD,如步骤 2 所示pip install opencv_python-2.4.13.7-cp27-cp27m-win_amd64.whl
5-在第 4 步之后,当我使用导入 OpenCV 时,import cv2
不再出现 DLL 错误,而是出现与 numpy 相关的错误(因为我刚刚安装了该版本的 Python,因此尚未安装 Numpy)。我通过输入和voilà安装了numpy pip install numpy
!问题已解决,OpenCV 导入正确。
希望这可以帮助某人。
就我而言,我必须安装旧版本的 openCV(Windows 10、Python 3.6.8)
pip install opencv-python==3.3.0.9
要安装此 dll: https ://www.microsoft.com/en-us/software-download/mediafeaturepack ,如上所述
从我安装了 opencv 的 anaconda 4.10.1 环境中的 windows 10 powershell 运行 python 3.8.8
康达安装opencv
当我从命令行启动 python 时,我可以导入 opencv 没有问题。
但是,当我尝试使用 python 解释器为我激活的特定 anaconda 环境从 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
使用以下命令安装 python:
确保 opencv-python 安装在路径(\Python\Python36\Lib\site-packages)中,你会在那里找到 cv2 文件夹。
检查 cv2 的版本: import cv2 print(cv2.__version__)