在特定版本的 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,并且由于无法在其中访问 cv2,我更新了 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 库。 (但我不知道为什么会这样)
我目前正在做一个项目,该项目向 OpenCV 3.0 beta 添加了一个新模块,因此我正在尝试将我自己的编译版本与 Python 一起使用(顺便说一下,C++ 版本有效)。
因为我不想弄乱 OpenCV 的版本并且 Python 已经安装,所以我没有将我特定的 build/installation 的 OpenCV 3.0 beta 添加到 ldconfig 中,我想使用如果可能,它在 python virtualenv 中。
到目前为止,我已经设置了 venv,并且由于无法在其中访问 cv2,我更新了 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 库。 (但我不知道为什么会这样)