Ubuntu22.04编译带CUDA的OpenCV4.7,Python3绑定无法构建求助
问题:Ubuntu22.04编译OpenCV4.7无法生成Python3绑定
在Ubuntu22.04系统上从源码编译支持CUDA11.6和cuDNN8.4的OpenCV4.7,已完成CUDA、cuDNN的安装以及OpenCV的编译安装。C++及GPU功能正常,但多次配置Python3(3.10)相关CMake参数后,仍无法构建Python3绑定。
CMake GUI设置的参数
BUILD_opencv_python_bindings_generator = ON OPENCV_PYTHON_VERSIION = ON PYTHON3_EXECUTABLE = /usr/bin/python3.10 PYTHON3_INCLUDE_DIR = /usr/include/python3.10 PYTHON3_LIBRARY = /usr/lib/x86_64-linux-gnu/libpython3.10.so PYTHYON3_NUMPY_INCLUDE_DIRS = /home/USERNAME/.local/lib/python3.10/site-packages/numpy/core/include PYTHON3_PACKAGES_PATH = /home/USERNAME/.local/lib/python3.10/site-packages
部分配置结果
Extra modules: Location (extra): /home/USERNAME/Downloads/opencv/opencv_contrib-4.7.0/modules Version control (extra): unknown OpenCV modules: To be built: aruco barcode bgsegm bioinspired calib3d ccalib core cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev datasets dnn ... 更多模块 ... xphoto Disabled: freetype Disabled by dependency: - Unavailable: alphamat ... ovis python2 python3 sfm viz Applications: tests perf_tests examples apps Documentation: NO Non-free algorithms: NO NVIDIA CUDA: YES (ver 11.6, CUFFT CUBLAS) NVIDIA GPU arch: 80 86 NVIDIA PTX archs: cuDNN: YES (ver 8.4.0) Python (for build): /usr/bin/python3.10
排查建议
- 修正参数拼写错误:
- 将
OPENCV_PYTHON_VERSIION改为OPENCV_PYTHON_VERSION - 将
PYTHYON3_NUMPY_INCLUDE_DIRS改为PYTHON3_NUMPY_INCLUDE_DIRS
- 将
- 安装Python3开发依赖:
sudo apt-get install python3.10-dev python3-numpy - 验证numpy路径准确性:
执行以下命令获取numpy的正确头文件路径,确保与PYTHON3_NUMPY_INCLUDE_DIRS一致:python3.10 -c "import numpy; print(numpy.get_include())" - 清理CMake缓存重新配置:
删除编译目录下的CMakeCache.txt文件和CMakeFiles文件夹,再重新通过CMake GUI配置参数 - 显式开启Python3模块:
检查并确保BUILD_opencv_python3参数设置为ON(部分OpenCV版本需要显式开启该参数) - 补全编译依赖:
安装可能缺失的基础编译依赖:sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
内容的提问来源于stack exchange,提问作者Kakazoo
相关产品推荐
相关产品推荐

