You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rocky Linux 9编译带CUDA支持的OpenCV-Python失败求助

编译支持CUDA的opencv-python时CMake配置失败问题

问题概述

尝试编译支持CUDA的opencv-python以运行SIFT,执行pip wheel . --verbose时出现CMake配置不完整的错误,且无法找到CMake输出文件定位具体问题。

已执行操作

  • 递归克隆仓库:git clone --recursive https://github.com/opencv/opencv-python.git
  • 进入仓库目录:cd opencv-python
  • 设置环境变量并执行编译:
    export CMAKE_ARGS="-DWITH_CUDA=ON -DCMAKE_BUILD_TYPE=Release -DENABLE_FAST_MATH=1 -DCUDA_FAST_MATH=1 -DWITH_CUBLAS=1 -DOPENCV_DNN_CUDA=ON"
    export ENABLE_CONTRIB=1
    pip wheel . --verbose
    

错误输出

-- Configuring incomplete, errors occurred!
Traceback (most recent call last):
  File "/tmp/pip-build-env-hrc4y4f6/overlay/lib/python3.9/site-packages/skbuild/setuptools_wrap.py", line 664, in setup
    env = cmkr.configure(
  File "/tmp/pip-build-env-hrc4y4f6/overlay/lib/python3.9/site-packages/skbuild/cmaker.py", line 354, in configure
    raise SKBuildError(msg)

An error occurred while configuring with CMake.
  Command:
    /tmp/pip-build-env-hrc4y4f6/overlay/lib64/python3.9/site-packages/cmake/data/bin/cmake /home/grant/chinese_test/opencv-python/opencv -G 'Unix Makefiles' --no-warn-unused-cli -DCMAKE_INSTALL_PREFIX:PATH=/home/grant/chinese_test/opencv-python/_skbuild/linux-x86_64-3.9/cmake-install -DPYTHON_VERSION_STRING:STRING=3.9.18 -DSKBUILD:INTERNAL=TRUE -DCMAKE_MODULE_PATH:PATH=/tmp/pip-build-env-hrc4y4f6/overlay/lib/python3.9/site-packages/skbuild/resources/cmake -DPYTHON_EXECUTABLE:PATH=/usr/bin/python3 -DPYTHON_INCLUDE_DIR:PATH=/usr/include/python3.9 -DPYTHON_LIBRARY:PATH=/usr/lib64/libpython3.9.so -DPython_EXECUTABLE:PATH=/usr/bin/python3 -DPython_ROOT_DIR:PATH=/usr -DPython_FIND_REGISTRY:STRING=NEVER -DPython_INCLUDE_DIR:PATH=/usr/include/python3.9 -DPython_NumPy_INCLUDE_DIRS:PATH=/tmp/pip-build-env-hrc4y4f6/overlay/lib64/python3.9/site-packages/numpy/_core/include -DPython3_EXECUTABLE:PATH=/usr/bin/python3 -DPython3_ROOT_DIR:PATH=/usr -DPython3_FIND_REGISTRY:STRING=NEVER -DPython3_INCLUDE_DIR:PATH=/usr/include/python3.9 -DPython3_NumPy_INCLUDE_DIRS:PATH=/tmp/pip-build-env-hrc4y4f6/overlay/lib64/python3.9/site-packages/numpy/_core/include -DWITH_CUDA=ON -DCMAKE_BUILD_TYPE=Release -DENABLE_FAST_MATH=1 -DCUDA_FAST_MATH=1 -DWITH_CUBLAS=1 -DOPENCV_DNN_CUDA=ON -DPYTHON3_EXECUTABLE=/usr/bin/python3 -DPYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3 -DPYTHON3_INCLUDE_DIR=/usr/include/python3.9 -DPYTHON3_LIBRARY=/usr/lib64/libpython3.9.so -DBUILD_opencv_python3=ON -DBUILD_opencv_python2=OFF -DBUILD_opencv_java=OFF -DOPENCV_PYTHON3_INSTALL_PATH=python -DINSTALL_CREATE_DISTRIB=ON -DBUILD_opencv_apps=OFF -DBUILD_opencv_freetype=OFF -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_DOCS=OFF -DPYTHON3_LIMITED_API=ON -DBUILD_OPENEXR=ON -DOPENCV_EXTRA_MODULES_PATH=/home/grant/chinese_test/opencv-python/opencv_contrib/modules -DWITH_CUDA=ON -DCMAKE_BUILD_TYPE=Release -DENABLE_FAST_MATH=1 -DCUDA_FAST_MATH=1 -DWITH_CUBLAS=1 -DOPENCV_DNN_CUDA=ON
  Source directory:
    /home/grant/chinese_test/opencv-python/opencv
  Working directory:
    /home/grant/chinese_test/opencv-python/_skbuild/linux-x86_64-3.9/cmake-build
Please see CMake's output for more information.

error: subprocess-exited-with-error

× Building wheel for opencv-contrib-python (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.
full command: /usr/bin/python3 /home/grant/.local/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py build_wheel /tmp/tmpzppm94gi
cwd: /home/grant/chinese_test/opencv-python
Building wheel for opencv-contrib-python (pyproject.toml) ... error
ERROR: Failed building wheel for opencv-contrib-python
Failed to build opencv-contrib-python
ERROR: Failed to build one or more wheels

排查难点

已递归搜索目录树,但未找到CMake相关输出文件,无法定位具体配置错误。

排查与解决建议

  1. 强制生成CMake日志文件
    手动执行CMake命令并指定日志输出,直接在CMake工作目录运行:

    cd /home/grant/chinese_test/opencv-python/_skbuild/linux-x86_64-3.9/cmake-build
    /tmp/pip-build-env-hrc4y4f6/overlay/lib64/python3.9/site-packages/cmake/data/bin/cmake /home/grant/chinese_test/opencv-python/opencv -G 'Unix Makefiles' --no-warn-unused-cli -DCMAKE_INSTALL_PREFIX:PATH=/home/grant/chinese_test/opencv-python/_skbuild/linux-x86_64-3.9/cmake-install -DPYTHON_VERSION_STRING:STRING=3.9.18 -DSKBUILD:INTERNAL=TRUE -DCMAKE_MODULE_PATH:PATH=/tmp/pip-build-env-hrc4y4f6/overlay/lib/python3.9/site-packages/skbuild/resources/cmake -DPYTHON_EXECUTABLE:PATH=/usr/bin/python3 -DPYTHON_INCLUDE_DIR:PATH=/usr/include/python3.9 -DPYTHON_LIBRARY:PATH=/usr/lib64/libpython3.9.so -DPython_EXECUTABLE:PATH=/usr/bin/python3 -DPython_ROOT_DIR:PATH=/usr -DPython_FIND_REGISTRY:STRING=NEVER -DPython_INCLUDE_DIR:PATH=/usr/include/python3.9 -DPython_NumPy_INCLUDE_DIRS:PATH=/tmp/pip-build-env-hrc4y4f6/overlay/lib64/python3.9/site-packages/numpy/_core/include -DPython3_EXECUTABLE:PATH=/usr/bin/python3 -DPython3_ROOT_DIR:PATH=/usr -DPython3_FIND_REGISTRY:STRING=NEVER -DPython3_INCLUDE_DIR:PATH=/usr/include/python3.9 -DPython3_NumPy_INCLUDE_DIRS:PATH=/tmp/pip-build-env-hrc4y4f6/overlay/lib64/python3.9/site-packages/numpy/_core/include -DWITH_CUDA=ON -DCMAKE_BUILD_TYPE=Release -DENABLE_FAST_MATH=1 -DCUDA_FAST_MATH=1 -DWITH_CUBLAS=1 -DOPENCV_DNN_CUDA=ON -DPYTHON3_EXECUTABLE=/usr/bin/python3 -DPYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3 -DPYTHON3_INCLUDE_DIR=/usr/include/python3.9 -DPYTHON3_LIBRARY=/usr/lib64/libpython3.9.so -DBUILD_opencv_python3=ON -DBUILD_opencv_python2=OFF -DBUILD_opencv_java=OFF -DOPENCV_PYTHON3_INSTALL_PATH=python -DINSTALL_CREATE_DISTRIB=ON -DBUILD_opencv_apps=OFF -DBUILD_opencv_freetype=OFF -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_DOCS=OFF -DPYTHON3_LIMITED_API=ON -DBUILD_OPENEXR=ON -DOPENCV_EXTRA_MODULES_PATH=/home/grant/chinese_test/opencv-python/opencv_contrib/modules -DWITH_CUDA=ON -DCMAKE_BUILD_TYPE=Release -DENABLE_FAST_MATH=1 -DCUDA_FAST_MATH=1 -DWITH_CUBLAS=1 -DOPENCV_DNN_CUDA=ON 2>&1 > cmake_config_log.txt
    

    执行后查看cmake_config_log.txt即可获取完整的CMake配置错误信息。

  2. 检查CUDA环境完整性

    • 验证CUDA Toolkit安装:运行nvcc --version确认版本,确保与当前OpenCV分支支持的CUDA版本匹配
    • 检查CUDA环境变量:确认CUDA_HOME、PATH、LD_LIBRARY_PATH已正确配置,示例命令:
      echo $CUDA_HOME
      echo $PATH | grep cuda
      echo $LD_LIBRARY_PATH | grep cuda
      
  3. 清理缓存后重新编译

    • 删除现有构建目录:rm -rf _skbuild
    • 重新设置环境变量并执行编译:
      export CMAKE_ARGS="-DWITH_CUDA=ON -DCMAKE_BUILD_TYPE=Release -DENABLE_FAST_MATH=1 -DCUDA_FAST_MATH=1 -DWITH_CUBLAS=1 -DOPENCV_DNN_CUDA=ON"
      export ENABLE_CONTRIB=1
      pip wheel . --verbose
      
  4. 检查基础依赖完整性
    确保系统已安装OpenCV编译所需的基础依赖,以Ubuntu/Debian为例:

    sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
    sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev
    

内容的提问来源于stack exchange,提问作者Grant Curell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 23:23:13