安装OpenCV for Python(多个python版本)

Moh*_*imi 7 python opencv python-2.7

我的机器上安装了两个不同版本的python:2.4和2.7.我正在尝试为2.7版本安装OpenCV(2.4.5).

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_NEW_PYTHON_SUPPORT=ON -D BUILD_EXAMPLES=ON ..
Run Code Online (Sandbox Code Playgroud)

它将python 2.4检测为当前安装:

--   Python:
--     Interpreter:                 /usr/bin/python2.4 (ver 2.4)
--     Libraries:                   /usr/lib64/python2.4/config/libpython2.4.a
--     numpy:                       /usr/lib64/python2.4/site-packages/numpy/core/include (ver 1.2.1)
--     packages path:               lib/python2.4/site-packages
Run Code Online (Sandbox Code Playgroud)

然后在构建opencv时给出了这个错误:

[ 75%] Generating pyopencv_generated_funcs.h, pyopencv_generated_func_tab.h, pyopencv_generated_types.h, pyopencv_generated_type_reg.h, pyopencv_generated_const_reg.h
  File "/home/mmoghimi/opencv-2.4.5/modules/python/src2/gen2.py", line 815
    cname1=("cv::Algorithm" if classinfo.isalgorithm else classinfo.cname)))
                             ^
SyntaxError: invalid syntax
make[2]: *** [modules/python/pyopencv_generated_funcs.h] Error 1
make[1]: *** [modules/python/CMakeFiles/opencv_python.dir/all] Error 2
make: *** [all] Error 2
Run Code Online (Sandbox Code Playgroud)

显然它使用了python2.4不支持的新格式.所以,我的问题是有没有办法明确指定python的版本?

Aur*_*ius 21

有一些Cmake标志允许您明确指定要使用的Python版本.您需要将这些标志的值设置为安装Python的正确位置.

标志名称和可能的位置如下:

PYTHON_EXECUTABLE=/usr/bin/python2.7/
PYTHON_INCLUDE=/usr/include/python2.7/
PYTHON_LIBRARY=/usr/lib/libpython2.7.a    //or .so for shared library
PYTHON_PACKAGES_PATH=/usr/local/lib/python2.7/site-packages/
PYTHON_NUMPY_INCLUDE_DIR=/usr/local/lib/python2.7/dist-packages/numpy/core/include
Run Code Online (Sandbox Code Playgroud)

如果这些路径不起作用,则需要在计算机上找到它们.

  • 在CMake GUI中,除非您标记"高级"标记,否则这些标记(大多数)都是隐藏的. (3认同)