Ubuntu Opencv 3.4.11 / 4.4.0 python3.8 编译问题解决方法收集

1、问题:opencv-4.4.0/modules/python/src2/cv2.cpp:17:10: fatal error: Python.h: 没有那个文件或目录
   17 | #include

Ubuntu Opencv 3.4.11 / 4.4.0 python3.8 编译问题解决方法收集_第1张图片

原因:cmake 默认指定python头文件搜索路径不对

解决:手动指定路径

cmake .. \
-D WITH_CUDA=OFF \
-D WITH_VTK=OFF \
-D WITH_MATLAB=OFF \
-D BUILD_DOCS=ON \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_PYTHON3_VERSION=3.8 \
-D PYTHON3_INCLUDE_PATH=/usr/include/python3.8 \
-D PYTHON3_LIBRARIES=/usr/lib/python3.8/config-3.8-x86_64-linux-gnu/libpython3.8.so \
-D PYTHON3_EXECUTABLE=/usr/bin/python3.8 \
-D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3.8/dist-packages/numpy/core/include/ \
-D OPENCV_EXTRA_MODULES_PATH=/home/cyrus/AI/opencv_contrib-4.4.0/modules

说明:OPENCV_PYTHON3_VERSION=3.8 (必须指定)

           CMAKE_INSTALL_PREFIX 是 make install 编译安装路径(可修改)

           OPENCV_EXTRA_MODULES_PATH 是  opencv_contrib 的modules目录(根据实际修改) ,为了全功能所以一起编译了。

           python3.8 的位置如果不一样请自行修改。

2、问题:error: recursion is detected during loading of "cv2" binary extensions

解决:进入opencv编译目录下的python_loader目录,执行python setup.py develop

Ubuntu Opencv 3.4.11 / 4.4.0 python3.8 编译问题解决方法收集_第2张图片

cd /home/cyrus/AI/opencv-4.4.0/release/python_loader
python setup.py develop

Ubuntu Opencv 3.4.11 / 4.4.0 python3.8 编译问题解决方法收集_第3张图片

3、编译3.4.11 版本出错:python/src2/cv2.cpp:68:94: error: ‘to’ is not a member of ‘PyOpenCV_Converter

Ubuntu Opencv 3.4.11 / 4.4.0 python3.8 编译问题解决方法收集_第4张图片

 解决方式:-D BUILD_opencv_python2=OFF -D BUILD_opencv_python3=OFF 

cmake .. \
-D WITH_CUDA=OFF \
-D WITH_VTK=OFF \
-D WITH_MATLAB=OFF \
-D BUILD_DOCS=ON \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_PYTHON3_VERSION=3.8 \
-D PYTHON3_INCLUDE_PATH=/usr/include/python3.8 \
-D PYTHON3_LIBRARIES=/usr/lib/python3.8/config-3.8-x86_64-linux-gnu/libpython3.8.so \
-D PYTHON3_EXECUTABLE=/usr/bin/python3.8 \
-D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3.8/dist-packages/numpy/core/include/ \
-D OPENCV_EXTRA_MODULES_PATH=/home/cyrus/AI/opencv_contrib-3.4.11/modules \
-D BUILD_opencv_python2=OFF -D BUILD_opencv_python3=OFF 

 

你可能感兴趣的:(AI学习,Linux)