如何在Windows7 Cygwin64上制作适用于Python 2.7.5的Opencv 2.4.8?

4

到目前为止,我已经花费了约15个小时的时间,尝试在我的Windows7 Cygwin-64环境中,让Opencv 2.4.8与Python 2.7.5配合使用。

在一些挣扎之后,我终于成功地让Opencv与C++配合工作了,但我仍然无法从Python中调用Opencv。

这是我尝试导入cv2模块时收到的结果:

$ python
Python 2.7.5 (default, Oct  2 2013, 22:34:09)
[GCC 4.8.1] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named cv2
>>>

在使用cmake-gui安装Opencv时,所有与Python相关的配置条目都已正确定义。
我已将opencv/bin路径添加到我的PATH中。
我已将文件cv2.pyd从opencv发行版复制到我的Python安装的site-packages文件夹中,但没有成功。
我尝试设置PYTHONPATH以指向site-packages目录,但没有帮助。
对我来说,似乎Python不知道cv2模块的存在。
如果有人能提供关于Python如何定位外部非Python模块的更多见解,除了将相应的.pyd文件放置在site-packages库中之外,这将有助于进一步疑难解答。
谢谢。

1
请尝试使用此处找到的64位Python安装程序(http://www.lfd.uci.edu/~gohlke/pythonlibs/)。 - M4rtini
谢谢,我会查看的。 - Pryderide
您不能在Cygwin的Python中使用cv2.pyd(或任何其他为Windows Python构建的内容),它们不兼容。为Cygwin构建OpenCV需要多个补丁,但二进制包可从Ports获取。 - Yaakov
@Yaakov,感谢你的详细回答。看起来在我能够在我的设置上运行OpenCV/Python之前还有一些额外的工作要做。我成功地从源代码构建了OpenCV,并且可以与Cygwin的gcc/C++很好地配合使用,所以我想现在先使用C++,因为大多数示例似乎都是用C++编写的。 - Pryderide
1个回答

1
问题解决了!我现在能够使用OpenCV运行Python了。
@Yaakov指导了我正确的方向:一旦我意识到cv2.pyd基本上只是一个dll,其他就很容易了:由于我已经从源代码构建了OpenCV,我开始怀疑在该过程中是否已经构建了cv2.dll。确实如此,在OpenCV构建区域的lib目录中有这个文件。
将该文件复制到我的python的site-packages目录后,一切都正常工作了。
更多细节在此

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接