我在 CentOS6.7 上,我正在构建 opencv-2.4.10(我删除了 2.4.9,因为我的 python cv2 包似乎与 opencv-2.4.9 版本不一致。 当我用python打印cv2.__version__时,它显示2.4.10,所以我想我应该将opencv升级到2.4.10,因为python cv2只是真正的c ++ opencv的python包装器。反正..)
唯一与python相关的环境变量是PYTHON_PATH。
ckim@stph45:~/Downloads/opencv-2.4.10/build] echo $PYTHON_PATH
/home/ckim/anaconda2/lib/python2.7/site-packages/
在/home/ckim/Downloads/opencv-2.4.10/build 目录下,我做了
cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_EXAMPLES=ON -D
CUDA_GENERATION=Auto ..
我可以看到结果配置消息,其中一些与 python 相关的消息对我来说似乎很奇怪。见下文。
....
-- Python:
-- Interpreter: /home/ckim/anaconda2/bin/python2 (ver 2.7.12)
-- Libraries: /usr/local/lib/libpython2.7.so
-- numpy: /home/ckim/anaconda2/lib/python2.7/site-packages/numpy/core/include (ver 1.10.2)
-- packages path: lib/python2.7/site-packages
....
解释器和numpy正确指向我的anaconda2 python环境,但是为什么库指向安装在我的系统中的python(不是anaconda2)?
我尝试按照此处的说明在 cmake 命令中传递与 python 相关的变量,但没有帮助。在 CentOS 上安装一些东西几乎总是不是一件容易的事,但我坚持使用 CentOS。
我通过以下命令成功地构建了 opencv-2.4.10。
make clean ; cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_EXAMPLES=ON -D CUDA_GENERATION=Auto -D PYTHON_INCLUDE_DIR=/home/ckim/anaconda2/include/python2.7/PYTHON_LIBRARY=/home/ckim/anaconda2/lib/libpython2.7.so .. | & tee log.cmake使 -j8 |& tee log.make
现在安装了 OpenCV-2.4.10,CV2 也是 2.4.10。
当我查看log.cmake时,我仍然看到
Libraries: /usr/local/lib/libpython2.7.so (ver 2.7.12)
但无论如何编译是成功的,所以似乎我可以忽略此配置消息,我在命令行 (PYTHON_LIBRARY) 中设置的参数只重要。