2010-02-03 93 views
6

我无法获取要运行的示例Python程序。当执行Python命令“from opencv import cv”时,我得到消息“ImportError:No module named _cv”。 site-packages目录中有一个陈旧的_cv.pyd,但是在任何地方都没有_cv.py。请参阅下面的步骤5。OpenCV 2.0和Python

MS Windows XP中,VC++ 2008,Python 2.6中,OpenCV的2.0

这就是我所做的。

  1. 下载并运行适用于OpenCV2.0的MS Windows安装程序。
  2. 下载和安装CMake的
  3. 下载并安装痛饮
  4. 然CMake的。在CMake GUI中取消选中“ENABLE_OPENMP”后,我可以使用INSTALL.vcproj和BUILD_ALL.vcproj构建OpenCV。我不知道有什么区别,所以我在这两个项目文件下都创建了一切。 C示例程序运行良好。
  5. 将OpenCV2.0/Python2.6/lib/site-packages的内容复制到我安装的Python2.6/lib/site-packages目录中。我注意到它包含一个旧的_cv.pyd和一个旧的libcv.dll.a。
+2

从版本2.0开始,OpenCV实际上带有两套独立的Python绑定。默认是“新”Python绑定;使用CMake时,默认禁用旧的SWIG绑定。由于新的绑定是不完整的,旧的绑定是痛苦的使用,这是一个相当混乱,我不会感到惊讶,如果你继续有这个问题之外的问题。 – ezod 2010-02-03 21:12:02

+2

为什么,为什么Python的力量为什么会不断打破一切?每个新版本都是一场噩梦。想象一下,如果每个星期二的Windows操作系统补丁出来,你必须说服你的所有软件供应商创建新的版本,然后你必须安装新的版本,并改变你的所有程序与它们绑定。 – 2010-02-03 21:24:10

+1

是Python 2.6还是Python 3.0的“新”绑定? – 2010-02-03 21:25:33

回答

3

在步骤1(安装程序)之后,将C:\OpenCV2.0\Python2.6\Lib\site-packages的内容复制到C:\Python26\Lib\site-packages(假定为标准安装路径)。 就是这样。

如果你已经安装了一个摄像头,你可以尝试在C:\OpenCV2.0\samples\python

的camshift.demo已被废弃的东西(C:\OpenCV2.0\samples\swig_python)正如有人写以上不此刻工作。 OpenCV人正在努力。这是完整的图片:

31/03/10 (hopefully) Next OpenCV Official Release: 2.1.0 is due March 31st, 2010. link://opencv.willowgarage.com/wiki/Welcome/Introduction#Announcements

04/03/10 [james]rewriting samples for new Python 5:36 PM Mar 4th
via API link://twitter.com/opencvlibrary

12/31/09 We've gotten more serious about OpenCV's software engineering. We now have a full C++ and Python interface. link://opencv.willowgarage.com/wiki/OpenCV%20Monthly

9/30/09 Several (actually, most) SWIG-based Python samples do not work correctly now. The reason is this problem is being investigated and the intermediate update of the OpenCV Python package will be released as soon as the problem is sorted out. link://opencv.willowgarage.com/wiki/OpenCV%20Monthly

+0

这方面有没有进展? – 2010-05-18 18:55:40

+0

适用于2.2。谢谢。 – Wok 2010-12-14 22:29:16

4

您应该使用python dist utils安装opencv。这可以通过将OpenCV的目录,然后输入来完成:

python setup.py install 

编辑:

的OpenCV采用的distutils,但有些是间接的。在UNIX安装线沿线的更多:

configure 
make -j 8 
make install 

对于Windows,最简单的方法可能是下载安装程序,就像对Linux最简单的方法是使用软件包管理器安装应用程序。你不能仅仅将OpenCV复制到python路径中,而是让它工作,因为它依赖于需要编译的大量C库。

我会想象Windows安装程序会安装二进制文件(而不是需要编译所有内容,并且它可能不好使用安装程序并自行编译所有内容)。无论如何,请勿复制自己的文件,或者进行安装,或者使用安装程序。

祝你好运OpenCV,我希望你喜欢使用它!

+0

试过了。 Setup.py在OpenCV目录中的任何位置都不存在。 – 2010-02-03 21:19:34

+1

OpenCV 2.0的Windows安装程序需要从源代码进行编译。只有几个示例程序以可执行形式提供,而这些程序是MinGW,而不是VC++。你必须编译所有的图书馆。我也曾与此打架。我失去了如何处理Python钩子。我想我会过着没有他们的生活。 – 2010-02-04 01:18:00

1

正如罗杰已经解释的那样,这种情况在一段时间里相当混乱。原因是opencv从一个C语言实现转移到了opencv2中的混合C和C++实现。这会导致所有包装的头痛,包括Python的包装。所以请不要抱怨python家伙“继续打破事情”,因为他们没有。 (顺便说一下,Python中唯一的主要不兼容性在2到3之间,这是广告)。

好消息是,有人试图通过包装opencv2来解决这个问题。我还没有广泛使用它,但现在看起来非常好。 http://code.google.com/p/pyopencv/ 它现在在python2中工作,但它已经与python3兼容99%。

PS在回复到stackoverflow问题时,保留进度日志并不是一种好的方式:在解决问题时添加回复。