Windows:Python + OpenCV + Qt:“import cv2”给出“dll not found”错误

Posted

技术标签:

【中文标题】Windows:Python + OpenCV + Qt:“import cv2”给出“dll not found”错误【英文标题】:Windows: Python + OpenCV + Qt: "import cv2" gives "dll not found" error 【发布时间】:2016-06-19 12:58:42 【问题描述】:

当我尝试在 Python (v3.4) 中使用 OpenCV (v3.1.0) 时遇到问题。为了让事情变得更复杂,OpenCV 是使用“contrib”包和 Qt 支持 (v5.5) 构建的。

这就是我所做的(这本身就有一些陷阱,但这些超出了这个问题的范围):

    安装所需软件
      我安装了WinPython(v3.4.4,64位版本) 我安装了 cmake (v3.6.0)
    下载源
      我从 GIT 存储库下载了 Qt 源代码 我从 GIT 存储库下载了 OpenCV 源代码 我从 GIT 存储库下载了 OpenCV “contrib” 源代码
    构建源 -> 发布,64 位 (!)
      从源代码构建 Qt 从源代码构建 OpenCV(使用“contrib”模块)

cmake(OpenCV 3.1.0 for python 3)已经负责将“cv2.pyd”复制到“your/python/folder/Lib/site-modules”目录。

现在我遇到的问题是从 python 调用“import cv2”会出现错误“

>>> import cv2
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
import cv2
ImportError: DLL load failed: Module not found

我怎样才能知道缺少哪个模块以及如何解决?

【问题讨论】:

【参考方案1】:

您可能不想做的只是adding paths that are likely needed to your environment variables。

一种方法可以找出缺少的东西:

    下载DependencyWalker 用依赖walker打开你的“cv2.pyd” 分析您的文件(在您选择文件时自动启动) 点击“F9”以显示所需 DLL 的完整路径 检查,缺少哪些 DLL 文件 将它们复制到这些文件夹中

对我来说,python/cv2.pyd 搜索到了 cv2.pyd 所在文件夹中的所有 Qt DLL。

我只是把它们复制到那里,就是这样。

【讨论】:

【参考方案2】:

对于 Windows:

步骤 1. 从https://www.python.org/downloads/ 下载 python 安装程序 ,通过双击此文件安装python并检查将python添加到PATH的选项,如给定图像所示。

第 2 步。从unofficial site 下载文件“numpy‑1.15.4+mkl‑cp27‑cp27m‑win32.whl”。

转到此文件的位置打开命令提示符并键入-

pip install numpy‑1.15.4+mkl‑cp27‑cp27m‑win32.whl

现在转到 python IDLE 并输入:

import numpy

应该没有错误。

第 3 步。从unofficial site 下载文件“scipy‑1.2.1‑cp27‑cp27m‑win32.whl”。

转到此文件的位置打开命令提示符并键入-

pip install scipy‑1.2.1‑cp27‑cp27m‑win32.whl

现在转到 python IDLE 并输入:

import scipy

应该没有错误。

第 4 步:从unofficial site 下载文件“opencv_python‑2.4.13.7‑cp27‑cp27m‑win32.whl”。

转到此文件的位置打开命令提示符并键入-

pip install opencv_python‑2.4.13.7‑cp27‑cp27m‑win32.whl

现在转到 python IDLE 并输入:

import cv2

应该没有报错,说明opencv在windows中安装成功。

【讨论】:

以上是关于Windows:Python + OpenCV + Qt:“import cv2”给出“dll not found”错误的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV开发——OpenCV3.4+Python3.5+Windows10安装问题解决

Windows 下 Python 3.x 的 OpenCV [重复]

Windows下使用VS2008编译OpenCV 2.1 添加Intel TBB和Python支持

python使用opencv在Windows下调用摄像头

Windows:Python + OpenCV + Qt:“import cv2”给出“dll not found”错误

Windows 中 OpenCV-Python 的自动完成功能不起作用