树莓派安装python3替换python2_在树莓派上安装基于python3的OpenCV

本文介绍了如何在树莓派上快速安装Python3的OpenCV,避免了长时间编译的过程。首先,通过更换国内源来加速更新和安装依赖。接着,安装必要的库,如libhdf5、libqt等。然后,使用pip3安装预构建的OpenCV贡献版。如果遇到下载速度慢或导入错误,提供了手动下载和设置LD_PRELOAD的解决方法。文章强调了这种方法虽然非官方,但能快速完成安装,并对比了官方编译安装的复杂性。
摘要由CSDN通过智能技术生成

书接上文Sebastian Zhou:从零开始在树莓派上安装系统(无显示器和网线)​zhuanlan.zhihu.com关于树莓派上安装OpenCV的教程也有很多,但似乎都陷入了一个怪圈,一定要在树莓派上编译OpenCV的代码。实际上,python3(而不仅仅是python2)的OpenCV是可以在树莓派直接安装的。

绝大多数在树莓派上安装opencv的教程都时要编译的,安装下来动辄五六个小时还容易出错,“我认为这不cool”(笑)。我综合了几个不需要编译安装的中文资料和Google了相关内容之后,总结了相对简单的方法。

一. 换源

因为树莓派的默认源在国外,所以我们在更新系统的时候时出奇的慢,所以我们就要把相应的源换到国内,国内相对出名的源有清华源,科大源,豆瓣源等,我用的是清华源(不用科大源是因为有一次缺少依赖找不到,换成清华源就ok)

打开树莓派的Terminal

sudo nano /etc/apt/sources.list

将原来的内容用#注释,将下面的内容粘贴在最后

deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib

deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib

Ctrl+O写入,Enter确认,Ctrl+X退出

sudo nano /etc/apt/sources.list.d/raspi.list

将原来的内容用#注释,将下面的内容粘贴在最后

deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui

Ctrl+O写入,Enter确认,Ctrl+X退出

假如你的系统不是Buster,请将buster换成你系统的版本,参见清华大学的helpTsinghua Open Source Mirror​mirrors.tuna.tsinghua.edu.cn

二. 安装依赖

sudo apt-get update

sudo apt-get upgrade

sudo apt-get install libhdf5-dev libhdf5-serial-dev

sudo apt-get install libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5

sudo apt-get install libatlas-base-dev

sudo apt-get install libjasper-dev

可能对于你的工作而言这些安装包不够全面,但这保证了OpenCV的基础运行。

三. 安装OpenCV

2019.11.19建议:

sudo pip3 install --no-cache-dir opencv-contrib-python==3.4.3.18

#安装opencv3而不是默认的opencv4

下载速度可能会相当的龟速。

假如你实在受不了这个速度,或者下载出错的话,并且具有最最基本的计算机知识的话。

在这里举个例子:

我把这个文件在浏览器当中下载好之后。

将鼠标放到VNC窗口的最上方,点击文件传输的那个图标

点击Send files...

选择刚才下载的文件。上传。这样这个文件就会出现在你的树莓派桌面上(见上上图)。

cd /home/pi/Desktop

sudo pip3 install opencv_contrib_python-3.4.3.18-cp37-cp37m-linux_armv7l.whl

文件名和下载的那个一样即可

sudo python3

>>> import cv2

>>> print(cv2.__version__)

3.4.3

大功告成

原方法:

这种方法目前在树莓派4上很可能有问题。

sudo pip install opencv-contrib-python#可能会出现下文错误2

安装完成,检查一下

sudo python3

运行python

>>> import cv2

>>> print(cv2.__version__)

4.1.1#原方法

大功告成

四. 可能的错误

1.

下载速度太慢。

解决方法:

查看下载链接,手动下载安装。

Download后面就是链接,复制到有梯子的电脑上的浏览器下载。然后参见上面2019.11.19推荐方法进行安装

2.

在2019.11.17,当import cv2之后

Traceback (most recent call last):

File "", line 1, in

File "/usr/local/lib/python3.7/dist-packages/cv2/__init__.py", line 3, in

from .cv2 import *

ImportError: /usr/local/lib/python3.7/dist-packages/cv2/cv2.cpython-37m-arm-linux-gnueabihf.so: undefined symbol: __atomic_fetch_add_8

解决方法(每一次启动python之前都需要这样):

sudo find / -type f -name ‘atom.so*’

LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libatomic.so.1.2.0 python3

之后再

>>> import cv2

>>> print(cv2.__version__)

4.1.1

假如你有相当的Linux知识,也可以通过虚拟环境解决,参见评论区第一条。

参考undefined symbol: __atomic_fetch_add_8​stackoverflow.com

3.

2019.10.23,当sudo pip install opencv-contrib-python之后,显示md5码校验错误。

解决方法:

sudo pip install --no-cache-dir opencv-contrib-python

#而不是

#sudo pip install opencv-contrib-python

参考Python packages hash not matching whilst installing using pip​stackoverflow.com

五. 后记

实际上,这种方法是通过pip安装非官方pre-built OpenCV软件包,它们不是http://OpenCV.org发布的官方OpenCV软件包。但这这并不意味着你需要因为它们不是官方的而感到不舒服,您只需要了解到它们没有得到http://OpenCV.org官方团队的直接认可和支持。(实际上这种方法也相当的不稳定,但pip比编译快了20倍,就将就着用)

实际上,使用pip安装是一种2018年下半年才实现的方法。这也就是为什么大部分教程仍然是使用编译安装。通过pip安装OpenCV比以往任何时候都容易。

但是对于某些项目,可能仍然需要完整的OpenCV安装,也就是编译安装,pip安装无法给你提供。

对于使用pip安装opencv,有两个安装包:opencv-python和opencv-contrib-python。区别在于,opencv-python只包含OpenCV库里的主要模块,而opencv-contrib-python包含主要模块和contrib模块,几乎包含了全部功能。

而且,不要同时安装opencv-python和opencv-contrib-python,你只需要选择其中一个。

参考:https://www.pyimagesearch.com/2018/09/19/pip-install-opencv/​www.pyimagesearch.comInstall OpenCV 4 on Raspberry Pi 4 and Raspbian Buster - PyImageSearch​www.pyimagesearch.com

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值