【发布时间】:2015-05-07 01:10:52
【问题描述】:
我想在 OpenCV 中支持 Python 3,所以我读到我需要用它构建自己的版本。
我从 SourceForge 下载了 OpenCV 3 beta,然后我使用 CMake 创建了一个项目,然后用 Visual Studio 编译了它。 它创建了很多文件(实际上与 Sourceforge 的预编译文件夹中的结构不同),还有一个 cv2.pyd。我将此文件放入 Python34\lib\site-packages,并在 python 控制台中尝试 import cv2,但它说 回溯(最近一次通话最后): 文件“”,第 1 行,在 ImportError: DLL load failed: Module not found.
我做错了什么? 谢谢。
【问题讨论】:
-
听起来,就像您为 opencv 制作了 dynamic 库(dll)。在这种情况下,包含这些的文件夹(如 e:\opencv\build\bin\release)必须附加到 PATH 变量中,以便 cv2.pyd 可以在运行时找到它们。
-
根据我的经验(至少以前是这样),OpenCV在windows上构建时还会生成一个cv2.dll,它应该与cv2.pyd放在同一个文件夹中。话虽如此,我不确定现在那里的情况如何,berak 可能是对的。无论如何,在您的环境的 PATH 中拥有正确的 dll 是一个好习惯,快速环境编辑器是在 Windows 上设置它的常用免费软件。
-
好的。我在路径中添加了新变量,但它没有帮助。而且我在文件夹中看不到 cv2.dll 或任何类似的库。老实说,我希望编译后我会得到一些 install 文件,它将执行常规安装过程。
-
您是否在Visual Studio 中构建了INSTALL 目标(子项目)?根据我的经验,对于默认情况下不会执行您期望的所有操作的 Windows 平台,但至少它将所有内容移动到根 opencv 目录中的特定文件夹(“安装”,如果我没记错的话),并且可能会移动将与 python 相关的文件放入正确的目的地。看看这给了你什么。另外,您的 python 安装是什么架构,您正在编译什么架构?在某些情况下,它们之间的不匹配会导致 DLL 加载错误。
-
另外,每次尝试时,请确保完全重新加载 python shell(不确定您使用的是哪个 shell,但如果只是从 windows 命令提示符下,也请重新启动)。
标签: python windows opencv python-3.x cmake