树莓派4B--OpenCV安装踩坑
报错: Source directory:
/tmp/pip-install-pv7l9r25/opencv-python_08fdf5a130a5429f89b0e0eaab39a329
Working directory:
/tmp/pip-install-pv7l9r25/opencv-python_08fdf5a130a5429f89b0e0eaab39a329/_skbuild/linux-armv7l-3.7/cmake-build
Please check the install target is valid and see CMake’s output for more information.
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for opencv-python
Building wheel for numpy (pyproject.toml) … done
Created wheel for numpy: filename=numpy-1.21.6-cp37-cp37m-linux_armv7l.whl size=12328869 sha256=06306d2e6b05960a90fc2edb7ae20f8ccc5700000888fa38fb2009aab18d2c1a
Stored in directory: /home/pi/.cache/pip/wheels/4e/7e/9e/0fde042ccff2493994076dac9c3fbd78feb444c3bd94eb386a
Successfully built numpy
Failed to build opencv-python
ERROR: Could not build wheels for opencv-python, which is required to install pyproject.toml-based projects
在树莓派 4 上安装 OpenCV 时经常遇到由于依赖关系不足、编译选项不兼容或者系统资源不足引起的问题。以下是一些可能的解决方法:
方法 1:检查依赖项!!!!!!!!
确保所有必要的依赖项已经安装。运行以下命令安装 OpenCV 的常见依赖项:
sudo apt update && sudo apt upgrade
sudo apt install -y build-essential cmake git pkg-config libjpeg-dev libtiff-dev libpng-dev \libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev \libgtk-3-dev libatlas-base-dev gfortran python3-dev
方法 2:增加交换空间
编译 OpenCV 可能需要较多的内存,而树莓派的 RAM 可能不足。尝试增加交换空间:
-
编辑交换空间配置文件:
sudo nano /etc/dphys-swapfile
-
将以下行的值增大,例如:
CONF_SWAPSIZE=2048
-
保存文件后,重新启动交换服务:
sudo systemctl restart dphys-swapfile
方法 3:使用 pip 安装预编译版本
默认情况下,opencv-python
使用了 pyproject.toml 构建工具,这可能导致不兼容问题。尝试通过 pip 安装特定版本的预编译包:
pip install opencv-python==4.5.3.56 opencv-contrib-python==4.5.3.56
方法 4:从源码编译 OpenCV
如果以上方法无效,可以手动从源码编译 OpenCV,这种方法兼容性最好但耗时较长。
-
克隆 OpenCV 仓库:
git clone https://github.com/opencv/opencv.git git clone https://github.com/opencv/opencv_contrib.git cd opencv git checkout 4.x cd ../opencv_contrib git checkout 4.x
-
创建构建目录并编译:
cd ../opencv mkdir build && cd build cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local \-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \-D ENABLE_NEON=ON -D ENABLE_VFPV3=ON \-D WITH_TBB=ON -D BUILD_TBB=ON -D WITH_GTK=ON \-D BUILD_opencv_python3=ON -D PYTHON3_EXECUTABLE=$(which python3) .. make -j$(nproc) sudo make install
方法 5:检查系统 Python 和 pip 版本
确保使用的 pip
和 python
与树莓派的架构匹配:
python3 --version
pip3 --version
如果 Python 和 pip 版本过旧,尝试更新:
sudo apt install python3-pip
pip3 install --upgrade pip setuptools wheel