无法通过pip安装软件包:安装opencv-python遇版本匹配错误求助
解决树莓派2上安装opencv-python失败的问题
我之前在树莓派2上折腾OpenCV的时候也碰到过一模一样的问题,给你整理几个靠谱的解决办法:
先捋清楚为啥会报错:你的树莓派2是ARMv6架构,而且用的Python3.6.2版本比较老旧,官方的opencv-python预编译包从某个版本开始,就不再支持ARMv6和Python3.6及以下的环境了——说白了就是PyPI上根本没有适配你当前环境的包,所以升级pip也没用。
下面是按推荐程度排序的解决方案:
方案一:用piwheels源装预编译包(最省心)
piwheels是专门给树莓派提供预编译Python包的仓库,里面有适配ARMv6的opencv-python版本,配置起来很简单:
- 创建pip配置文件(如果没有的话):
mkdir -p ~/.pip nano ~/.pip/pip.conf - 在文件里添加piwheels的源地址:
[global] extra-index-url=https://www.piwheels.org/simple - 保存退出后,重新执行安装命令:
pip3 install opencv-python
方案二:指定安装兼容旧环境的特定版本
如果piwheels源访问有问题,你可以直接装最后一个支持Python3.6和ARMv6的opencv-python版本——4.5.5.62:
pip3 install opencv-python==4.5.5.62
这个版本的预编译包还存在于PyPI,能完美匹配你的环境。
方案三:简化编译流程(前面方法都不行再试)
手动编译出错大多是因为依赖没装全,或者编译选项太复杂。试试下面简化后的步骤:
- 先装齐所有必要依赖:
sudo apt-get update && sudo apt-get install -y build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install -y python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev - 克隆对应版本的OpenCV源码(选4.5.5版本,和方案二的兼容版本一致):
git clone https://github.com/opencv/opencv.git cd opencv && git checkout 4.5.5 && cd .. git clone https://github.com/opencv/opencv_contrib.git cd opencv_contrib && git checkout 4.5.5 && cd .. - 创建编译目录并配置cmake,关闭树莓派2不需要的模块(比如CUDA、FFmpeg)来降低编译压力:
cd opencv && mkdir build && cd build cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_PYTHON_EXAMPLES=OFF \ -D INSTALL_C_EXAMPLES=OFF \ -D OPENCV_ENABLE_NONFREE=ON \ -D WITH_CUDA=OFF \ -D WITH_FFMPEG=OFF \ -D PYTHON_EXECUTABLE=/usr/bin/python3.6 \ -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \ -D BUILD_EXAMPLES=OFF .. - 开始编译(树莓派2性能有限,用
-j2指定2个线程,避免卡死):make -j2 sudo make install sudo ldconfig
内容的提问来源于stack exchange,提问作者rah




