编译OpenCV:如何为python3.6构建cv2.so模块?

fst*_*tab 2 python opencv

我一直在努力编译OpenCV。系统是Linux Ubuntu 16.10。

不幸的是,似乎唯一正在编译的Python库绑定/模块是用于Python 2.7的库绑定/模块,该模块安装在以下位置:

/usr/local/lib/python2.7/dist-packages/cv2.so
Run Code Online (Sandbox Code Playgroud)

我需要的反而是cv2python3.6。我已经建立了/usr/bin/python指向的链接/usr/bin/python3.6

这是我的cmake指令:

cmake \                                                                                   
-D CMAKE_BUILD_TYPE=RELEASE \                                                         
-D CMAKE_INSTALL_PREFIX=/usr/local \                                                  
-D BUILD_NEW_PYTHON_SUPPORT=ON \                                                      
-D INSTALL_C_EXAMPLES=ON \                                                            
-D INSTALL_PYTHON_EXAMPLES=ON \                                                       
-D BUILD_EXAMPLES=ON \                                                                
-DENABLE_PRECOMPILED_HEADERS=OFF \                                                    
-D OPENCV_EXTRA_MODULES_PATH=/home/foobar/Downloads/opencv_contrib/modules \
..         
Run Code Online (Sandbox Code Playgroud)

对可能出什么问题有任何想法吗?

Den*_*mov 5

我按照此处的说明在Debian 8上安装适用于Python 3.3的opencv。一切顺利! import cv2通过。

-D BUILD_NEW_PYTHON_SUPPORT=ON \
-D BUILD_opencv_python3=ON \
-D HAVE_opencv_python3=ON \
-D PYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3.4 \
Run Code Online (Sandbox Code Playgroud)

我建议您的Cmake的主键应该是:

  -D PYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3.6 \
Run Code Online (Sandbox Code Playgroud)

请检查Cmake输出的Python版本以进行构建。