前言
树莓派官方系统自带了Python,但往往是比较新的版本,目前自带的版本是3.9.2,很多库不一定兼容,不同版本库依赖关系非常乱,所以需要自己安装自己所需要的版本.
搜了网上很多教程,都是东拼西凑,时间也久的不行,各种坑,搞得不好就得重新烧写系统(玩树莓派不烧个几十次系统都不好意思说自己入门了),所以在废了一个下午安装成功Python后,把过程记录下来.
安装之前,不建议卸载自带的Python,留着它.这次我需要安装的是Python3.7.4版本,其他版本可能用不同,仅供参考.
系统: Raspberry OS
Python: 3.7.4
编译与安装
-
首先,是下载Python源码,很多文章使用wget下载,看个人喜好,反正我下载了好几次都没成功,除了网络问题,还有权限问题,加了sudo也没用.挺多人也是无法使用wget下载,因此我建议使用电脑先把源码下载下来,再通过ftp工具发到树莓派上.
下载链接Python3.7.4下载
下载第一个,注意看后缀名为tgz -
下载完成后,通过SFTP工具发到树莓派上,注意接下来的操作都尽可能使用sudo命令,防止权限问题.
先安装Python运行环境
sudo apt install build-essential libncurses-dev libreadline-dev libsqlite3-dev libssl-dev libexpat1-dev zlib1g-dev libffi-dev
cd /home/pi/Software sudo tar -zxvf Python-3.7.4.tgz (解压)
解压完了之后,可以看到src目录下多了一个Python-3.7.4的文件夹
cd Python-3.7.4 sudo ./configure --prefix=/home/pi/Software/Python37 (设置安装路径) make -j4 (启动四线程编译) make altinstall (不创建链接,防止替换原有的Python版本)
在安装过程中,可能会出现缺少文件的提示,百度一下缺少什么库,用apt安装一下,再重新执行make命令,例如,我碰到了"ModuleNotFoundError: No module named ‘_ctypes’"的错误,是由于缺少libffi-dev这个库引起的,执行
sudo apt-get install libffi-dev
再重新执行make altinstall即可
完事后添加环境变量
sudo nano ~/.bashrc 最后一行添加 export PATH=$PATH:/home/pi/Software/Python37/bin source ~/.bashrc
创建链接
如果你的树莓派已经安装了Python,这个地方会略有不同
-
未来不想使用之前版本Python的,要把自己的Python版本当主力版本的
先将原来Python版本的链接删除
sudo rm -rf /usr/bin/python sudo rm -rf /usr/bin/pip
然后,再创建当前版本的链接(根据自己安装路径的不同和需要,自己修改)
sudo ln /home/pi/Software/Python37/bin/python3.7 /usr/bin/python sudo ln /home/pi/Software/Python37/bin/pip3.7 /usr/bin/pip
千万注意,别生成python3和pip3,否则会出现lsb_release问题,挺头痛的
如果出现了,就把这个python3删除之后用python命令,就可以直接使用了
输入python检查是否安装成功,可以看到版本变成了3.7.4
输入pip -V检查pip是否安装正确
-
未来想使用之前版本Python的,原理也很简单,把软链接改个名就可以(不建议),或者跳过这步(建议)
sudo ln /usr/local/python37/bin/python3 /usr/bin/python3.7 sudo ln /usr/local/python37/bin/pip3 /usr/bin/pip3.7
今后的使用就不是使用python命令而是使用python3.7命令了
测试
最后测试一下,输入python进入控制台,输出个Hello World验证一下
可以看到成功了
说明
如果这篇文章对你有帮助,可以点个赞或者收藏.感谢阅读
之后尝试一下安装openCV框架,这玩意在树莓派上安装可太头痛了
严禁抄袭,转载请注明出处.