在特定版本的 OpenCV 中使用 python

Using python with a specific version of OpenCV

我目前正在做一个项目,该项目向 OpenCV 3.0 beta 添加了一个新模块,因此我正在尝试将我自己的编译版本与 Python 一起使用(顺便说一下,C++ 版本有效)。

因为我不想弄乱 OpenCV 的版本并且 Python 已经安装,所以我没有将我特定的 build/installation 的 OpenCV 3.0 beta 添加到 ldconfig 中,我想使用如果可能,它在 python virtualenv 中。

到目前为止,我已经设置了 venv,并且由于无法在其中访问 c​​v2,我更新了 PYTHONPATH 以添加包含 cv2.so 文件的文件夹(使用 sudo apt-get install python-opencv 创建) .但是,加载的不是正确版本的 opencv 绑定:

$ python -c "import cv2; print cv2.__version__"
2.4.8

知道我能做什么吗?

编辑(感谢@otibom):

我的构建似乎是我没有正确的 cv2.so 文件的原因。 cmake 的结果是:

--   Python 2:
--     Interpreter:                 /usr/bin/python2.7 (ver 2.7.6)
--     Libraries:                   NO
--     numpy:                       /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.8.2)
--     packages path:               lib/python2.7/dist-packages

有办法纠正吗?

编译 OpenCV 3.0 将创建自己的 cv2.so 文件,其中包含您的新模块,通常在您的 opencv3-0-0-beta/build 目录中。您需要将 OpenCV 3.0 构建目录添加到 PYTHONPATH 而不是由 apt-get 创建的目录。

关于 "libraries not found" 问题,我删除了文件 CMakeCache.txt 并在以下 cmake 命令中找到了 python 库。 (但我不知道为什么会这样)