最近在做毕业设计需要用到树莓派,因为刚刚接触树莓派所以感觉有些费劲,所以记录一下一个小白从重新装系统到搭建开发环境的整个过程当一个参考。首先说点感触,整个安装过程很难过,要下载一些安装文件,下载速度慢到不行,动不动就Read Time Out或者HASH加密不匹配之类的,这些都是因为网络问题,建议早上早点起来下载安装,那个时候绝对快。还有就是不要自己给自己找麻烦,如果你有幸读到这个可能会省下你很多时间。建议在树莓派上直接用系统自带的python版本2.7和3.5。我试过3.6的不行。
1.树莓派系统类型
我使用的是Raspbain系统(后面的百度网盘链接),在官网上下载可能有点慢,可以在百度网盘上下载可能会快一点。链接:https://pan.baidu.com/s/1h5Roksd5Jf394Coyx2c1BA 提取码:5fbd 这是2019年的其中一个版本。
2.新装系统时可能会用到的一些工具
SD卡格式化软件(SD Formatter 4.0 绿色中文版): 链接:https://pan.baidu.com/s/17U7IcWO6jyMPOt3ooO1pGg 提取码:0lua
烧录系统软件(Win32DiskImager-0.9.5-binary):链接:https://pan.baidu.com/s/11xFvxgO1iTDNvgEU8-bYuQ 提取码:06n3
远程登录软件(PUTTY和VCN,以后开发备用):链接:https://pan.baidu.com/s/1J8MOuIvdwwyMGqrO31UssQ 提取码:pdim
其实装系统的过程很简单,以上软件具体怎么使用和注意的事项你自己再百度吧!
3.装完系统之后树莓派开机设置
我装的这个系统首次开机进来就有一个图形界面让选择无线网、时间地域(China,ShangHai)和一系列其他的设置,就像是windows一样很友好。如果不小心关闭了设置也可以在左上角点击小草莓>>首选项>>Raspberry Pi Configuration,这里可以改密码、设置Camera、SSH、VNC等等interface的使用权限。再者也可以使用
sudo raspi-config
启动类似于windows里面BIOS的系统配置,基本上会一点英语的都能看懂他的配置选项。
4.接着就是使用系统自带python版本3.5
首先说明,这个系统内自带python,版本分别是2.7和3.5,但系统默认使用的是2.7的,如果你想使用3.5的那就需要在命令窗口执行
#移除系统默认python版本的引用
sudo rm /usr/bin/python
#添加你要引用的版本,打比方你要用3.5
sudo ln -s /usr/bin/python3.5 /usr/bin/python
#接着看一下python的版本
python --version
基本上通过上面的操作能够更换系统默认版本问题,除非你没有python3.5文件夹在/usr/bin下面,严重声明不要自己给自己找麻烦,3.6真的不行,有很多第三方的库下载不到,而且还会和本系统自带的python搞得很混乱,如果你真的装了其它的python版本,建议你重新安装一下系统这样会省下你很多百度的时间。
5.接下来进入最难搞环节安装第三方库(预备)
我们应该感到愤怒python的第三方库需要在外国网站上下载,速度很慢很慢,经常因为网络问题导致一次次下载失败,所以我们需要搞一个镜像网站来,这也是我借鉴来的,出自此处。但是我建议不要弄这个,我弄了然后又改回来了,因为系统需要的一些安装包在镜像网站上找不到。你可以试试,要是不行的话记得改回来就行了。
# 给Raspbian的包管理器apt-get换源
# 打开配置sources.list文件
sudo nano /etc/apt/sources.list
# 用#注释掉原文件内容,不要删除,用以下内容取代(Ctrl + O 保存再 Ctrl + X 退出):
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
# 打开配置raspi.list文件
sudo nano /etc/apt/sources.list.d/raspi.list
# 用#注释掉原文件内容,不要删除,用以下内容取代(Ctrl + O 保存再 Ctrl + X 退出)
deb http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
deb-src http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
# 编辑镜像站后,请使用命令
sudo apt-get update
#例如,你需要安装numpy则进行这样操作
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
#以后在树莓派上安装其他包可以直接pip install 安装,如果不行就按照上面的格式来安装
6.安装开发环境
首先要说一下,安装是有顺序的先安装numpy,再安装tensorflow,再安装keras最后是opencv如果你不按照顺序的话会出错误的
如果你也使用的我推荐的系统的话那我把我翻墙下载的一些必要whl文件分享给你。这里面有两个tensorflow的版本高版本的会有警告 RuntimeWarning: compiletime version 3.4 of module 'tensorflow.python.framework.fast_tensor_util' does not match runtime version 3.5; uiltins.type size changed, may indicate binary incompatibility. Expected 432, got 412
我为了解决这个警告才下载的那个低版本的tensorflow-1.13.1
为了保险起见我说一下上面的whl文件的使用方法
#例如:
#你在raspberry pi输入shell命令
sudo pip install numpy
#它会显示它正在进行的任务,一般都会有https://www.piwheels.org/simple/numpy/numpy-1.18.2-cp35-cp35m-linux_armv7l.whl这样的地址
#这说明他在下载numpy-1.18.2-cp35-cp35m-linux_armv7l.whl这个文件
#你就可以直接把百度云上下载的numpy-1.18.2-cp35-cp35m-linux_armv7l.whl文件放到/home/pi文件夹下执行
sudo pip install numpy-1.18.2-cp35-cp35m-linux_armv7l.whl
#这样省得你再去下载了,其他的类似。上面提供的whl文件有kears,tensorflow,numpy,scipy和opencv
安装keras时需要先执行一些其他的命令:
sudo apt-get install libhdf5-serial-dev
sudo pip install h5py
sudo pip install pillow imutils
sudo pip install scipy --no-cache-dir
# sudo pip install Keras-2.3.1-py2.py3-none-any.whl
sudo pip install keras
安装opencv之后也要先执行一些其他的命令确保 import cv2 能够正常导入:
sudo apt-get update
sudo apt-get install libjpeg-dev libatlas-base-dev libjpeg-dev libtiff5-dev libpng12-dev libqtgui4 libqt4-test libjasper-dev
# sudo pip install opencv_python-4.1.1.26-cp35-cp35m-linux_armv7l.whl
sudo pip install opencv-python
sudo apt-get install libhdf5-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install libjasper-dev
sudo apt-get install libqtgui4
sudo apt-get install python3-pyqt5
sudo apt-get install libqt4-test
7.你可能遇到的错误
(1)dpkg:处理包XXX(--configure)
就是在你apt-get update时会出一些错误说有一些依赖没有被配置之类的话,你可以这样解决,参考来自这里
#先切换到root用户
sudo su
#将info文件移动备份为info_bak文件
mv /var/lib/dpkg/info /var/lib/dpkg/info_bak
#创建一个新的info文件
mkdir /var/lib/dpkg/info
#更新配置,并安装那些没有配置的到info文件中
apt-get update && apt-get -f install
#将info中的所有移动到info_bak中
mv /var/lib/dpkg/info/* /var/lib/dpkg/info_bak/
#移除
rm -rf /var/lib/dpkg/info
#移动备份
mv /var/lib/dpkg/info_bak /var/lib/dpkg/info
(2)pip 安装keras Buliding wheel for scripy(PEP 517)一直无法通过
是因为你的scipy没有安装,你需要sudo pip insatll scipy一下,这个不好下载!你可以获得下载地址之后通过浏览器自行下载完之后再运行 sudo pip install scipy.xxx.xxx.xxx.whl
#例如下载地址是:https://www.piwheels.org/simple/opencv-python/scipy-1.3.3-cp35-cp35m-linux_armv7l.whl
#访问网址下载完之后再执行
sudo pip install scipy-1.3.3-cp35-cp35m-linux_armv7l.whl
(3)导入numpy或者keras时报numpy导入失败的错误
Importing the numpy c-extensions failed.
Try uninstalling and reinstalling numpy.
If you have already done that, then:
Check that you expected to use Python3.5 from "/usr/bin/python3",
and that you have no directories in your PATH or PYTHONPATH that can
interfere with the Python and numpy version "1.18.1" you're trying to use.
If (1) looks fine, you can open a new issue at
https://github.com/numpy/numpy/issues. Please include details on:
how you installed Python
how you installed numpy
your operating system
whether or not you have multiple versions of Python installed
if you built from source, your compiler versions and ideally a build log
If you're working with a numpy git repository, try git clean -xdf
(removes all files not under version control) and rebuild numpy.
Note: this error has many possible causes, so please don't comment on
an existing issue about this - open a new one instead.
Original error was: libf77blas.so.3: cannot open shared object file: No such file or directory
解决办法是
sudo apt-get install libatlas-base-dev
如果无法定位到libatlas-base-dev的话,你看看是不是你把原来的资源来源给换掉了,也就是你是不是添加了镜像网站,如果添加了你再去掉然后执行apt-get update应该就没问题了。
最后:与君你共勉!