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功能缺失,就需要修复这个权限问题。
修复方案
手动设置目录权限
直接给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重新执行安装步骤
重新运行make install,由于大部分文件已经标记为Up-to-date,CMake只会处理未完成的权限设置步骤,大概率能跳过之前的时序问题:make install编译时使用绝对路径避免解析问题
如果后续需要重新编译OpenCV,在cmake配置阶段,不要用~表示用户目录,改用绝对路径指定Python站点包路径,比如:cmake -D PYTHON_PACKAGES_PATH=/home/sd/.virtualenvs/cv/lib/python3.10/site-packages \ -D 其他编译参数 ..绝对路径能让CMake直接定位到目标目录,避免路径解析延迟导致的错误。
验证安装有效性
激活虚拟环境后测试OpenCV是否正常工作:source ~/.virtualenvs/cv/bin/activate python -c "import cv2; print(cv2.__version__)"若能正常输出版本号,说明安装无功能障碍。
内容的提问来源于stack exchange,提问作者DaveK
相关产品推荐
相关产品推荐

