如何为树莓派 Raspberry Pi 升级 Python 版本

用户时常使用树莓派开发板进行物联网(Internet-of-Things,IoT)开发工作。其上运行的一些诸如 Home Assistant 的程序可能需要一个更新版本的 Python,而树莓派等系统通过 apt 包管理器预置的 Python 版本可能并非最新。我们以将树莓派 Raspberry 更新至 Python 3.9 为例,演示如何将系统 Python 版本升级至最新版本的操作。

安装所需依赖

由于系统中 Raspberry 软件目录包含的 Python 版本并非最新,我们采用编译安装的方式在树莓派上安装最新 Python 版本。要完成该操作,首先需要将安装相关编译依赖:

sudo apt update && sudo apt dist-upgrade -y && sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget -y

编译安装 Python

要编译 Python,首先我们需要获取最新版本的源代码。在 Python 下载页面下载你需要的 Python 版本的源代码文件。获取 Gzipped source tarball 格式文件即可。我们以 Python 3.9.0 文件 https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz 为例。

让我们在系统中创建临时目录,并下载 Python 源代码:

mkdir ~/tmp
cd ~/tmp
wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz

下载很慢吗?你也可以试试从 GitHub Releases 中下载对应源代码,请注意选择 .tar.gz 格式文件

下载完毕后,我们使用 tar 工具将源码包解压:

tar -zxvf Python-3.9.0.tgz

然后我们进入 Python 目录,并完成配置:

cd Python-3.9.0
./configure

接下来,我们安装 Python:

sudo make altinstall

有同学会对此处的 altinstall 指令感到困惑。这是因为默认的 make install 操作将替换系统中 python3 二进制文件,而系统中有多种重要组件需要依赖 Python3 工作,直接替换 python3 可能会引起混乱。

安装好之后,我们检查 Python 的对应版本:

python3.9 --version
pip3.9 --version

致谢

本文的编写参考了这篇文章

感谢 @Charles 在树莓派上对本教程的验证。