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

OpenCV编译安装末尾出现CMake权限错误,是否需处理?

编译安装OpenCV时CMake权限设置错误的处理方案

错误日志

-- Up-to-date: /usr/local/include/opencv4/opencv2/videostab/wobble_suppression.hpp
-- Up-to-date: /usr/local/share/opencv4/samples/videostab/videostab.cpp
-- Up-to-date: /usr/local/share/opencv4/samples/videostab
-- Up-to-date: /root/.virtualenvs/cv/lib/python3.10/site-packages/cv2/__init__.py
-- Up-to-date: /root/.virtualenvs/cv/lib/python3.10/site-packages/cv2/load_config_py2.py
-- Up-to-date: /root/.virtualenvs/cv/lib/python3.10/site-packages/cv2/load_config_py3.py
-- Installing: /root/.virtualenvs/cv/lib/python3.10/site-packages/cv2/config.py
-- Up-to-date: /root/.virtualenvs/cv/lib/python3.10/site-packages/cv2/misc/__init__.py
-- Up-to-date: /root/.virtualenvs/cv/lib/python3.10/site-packages/cv2/misc/version.py
-- Up-to-date: /root/.virtualenvs/cv/lib/python3.10/site-packages/cv2/mat_wrapper/__init__.py
-- Up-to-date: /root/.virtualenvs/cv/lib/python3.10/site-packages/cv2/utils/__init__.py
-- Up-to-date: /root/.virtualenvs/cv/lib/python3.10/site-packages/cv2/gapi/__init__.py

-- Installing: ~/.virtualenvs/cv/lib/python3.10/site-packages/cv2 
CMake Error at modules/python3/cmake_install.cmake:162 (file):    
  file INSTALL cannot set permissions on "~/.virtualenvs/cv/lib/python3.10/site-packages/cv2": No such file or directory.  
Call Stack (most recent call first):   
  cmake_install.cmake:290 (include)

make: *** [Makefile:130: install] Error 1

目录实际存在的验证

用户检查目标目录后,确认~/.virtualenvs/cv/lib/python3.10/site-packages/cv2已存在,且包含完整的OpenCV Python绑定文件:

sd@ASUS:~/.virtualenvs/cv/lib/python3.10/site-packages/cv2$ l 
total 63M 
drwxrwxr-x  2 sd sd 4.0K Apr 28 06:45 aruco 
drwxrwxr-x  2 sd sd 4.0K Apr 28 06:45 barcode
-rw-rw-r--  1 sd sd  724 Apr 28 06:45 config-3.py
-rw-rw-r--  1 sd sd  111 Apr 28 06:45 config.py 
drwxrwxr-x  2 sd sd 4.0K Apr 28 06:45 cuda
-rwxrwxr-x  1 sd sd  63M Apr 28 06:45 cv2.abi3.so 
drwxrwxr-x  3 sd sd 4.0K Apr 28 06:45 data 
drwxrwxr-x  2 sd sd 4.0K Apr 28 06:45 detail 
drwxrwxr-x  2 sd sd 4.0K Apr 28 06:45 dnn 
drwxrwxr-x  2 sd sd 4.0K Apr 28 06:45 Error 
drwxrwxr-x  2 sd sd 4.0K Apr 28 06:45 fisheye
drwxrwxr-x  2 sd sd 4.0K Apr 28 06:45 flann 
drwxrwxr-x 15 sd sd 4.0K Apr 28 06:45 gapi
-rw-rw-r--  1 sd sd 6.5K Apr 28 06:45 __init__.py
-rw-rw-r--  1 sd sd 287K Apr 28 06:45 __init__.pyi 
drwxrwxr-x  2 sd sd 4.0K Apr 28 06:45 ipp
-rw-rw-r--  1 sd sd 148K Apr 28 06:45 LICENSE-3RD-PARTY.txt
-rw-rw-r--  1 sd sd 1.1K Apr 28 06:45 LICENSE.txt
-rw-rw-r--  1 sd sd  151 Apr 28 06:45 load_config_py2.py
-rw-rw-r--  1 sd sd  262 Apr 28 06:45 load_config_py3.py 
drwxrwxr-x  3 sd sd 4.0K Apr 28 06:45 mat_wrapper 
drwxrwxr-x  3 sd sd 4.0K Apr 28 06:45 misc 
drwxrwxr-x  2 sd sd 4.0K Apr 28 06:45 ml 
drwxrwxr-x  2 sd sd 4.0K Apr 28 06:45 ocl 
drwxrwxr-x  2 sd sd 4.0K Apr 28 06:45 ogl
drwxrwxr-x  2 sd sd 4.0K Apr 28 06:45 parallel 
drwxrwxr-x  2 sd sd 4.0K Apr 28 06:45 __pycache__
-rw-rw-r--  1 sd sd    0 Apr 28 06:45 py.typed 
drwxrwxr-x  4 sd sd 4.0K Apr 28 06:45 qt 
drwxrwxr-x  2 sd sd 4.0K Apr 28 06:45 samples 
drwxrwxr-x  2 sd sd 4.0K Apr 28 06:45 segmentation 
drwxrwxr-x  3 sd sd 4.0K Apr 28 06:45 typing 
drwxrwxr-x  5 sd sd 4.0K Apr 28 06:45 utils
-rw-rw-r--  1 sd sd   92 Apr 28 06:45 version.py 
drwxrwxr-x  2 sd sd 4.0K Apr 28 06:45 videoio_registry

是否需要关注?

分两种情况判断:

  • 无需关注的场景:如果激活虚拟环境后,能正常执行import cv2并调用OpenCV功能(比如读取图片、调用CV算法),说明核心的Python绑定已经安装完成。这个错误只是CMake在设置目录权限时的时序问题——比如目录刚被创建,文件系统还未同步,或者~路径解析存在延迟,导致CMake临时找不到目录,但实际文件都已部署。
  • 需要关注的场景:如果后续使用时出现权限报错(比如无法读取cv2目录下的配置文件、模块),或者部分OpenCV功能缺失,就需要修复这个权限问题。

修复方案

  1. 手动设置目录权限
    直接给cv2目录及子文件设置合理权限,确保虚拟环境用户能正常访问:

    chmod -R 755 ~/.virtualenvs/cv/lib/python3.10/site-packages/cv2
    

    如果是用root权限执行的安装,需要调整属主:

    sudo chown -R sd:sd ~/.virtualenvs/cv/lib/python3.10/site-packages/cv2
    
  2. 重新执行安装步骤
    重新运行make install,由于大部分文件已经标记为Up-to-date,CMake只会处理未完成的权限设置步骤,大概率能跳过之前的时序问题:

    make install
    
  3. 编译时使用绝对路径避免解析问题
    如果后续需要重新编译OpenCV,在cmake配置阶段,不要用~表示用户目录,改用绝对路径指定Python站点包路径,比如:

    cmake -D PYTHON_PACKAGES_PATH=/home/sd/.virtualenvs/cv/lib/python3.10/site-packages \
          -D 其他编译参数 ..
    

    绝对路径能让CMake直接定位到目标目录,避免路径解析延迟导致的错误。

  4. 验证安装有效性
    激活虚拟环境后测试OpenCV是否正常工作:

    source ~/.virtualenvs/cv/bin/activate
    python -c "import cv2; print(cv2.__version__)"
    

    若能正常输出版本号,说明安装无功能障碍。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 23:12:08