hank9999小站

在 Debian 10 或 Ubuntu 20.04 上编译安装 Python 3.10

hank9999's Avatar 2022-12-08

  1. 1. 0x00 前言
  2. 2. 0x01 安装依赖
  3. 3. 0x02 编译
    1. 3.1. 1. 下载并解压源代码
    2. 3.2. 2. 检查依赖并配置
    3. 3.3. 3. 编译
    4. 3.4. 4. 安装
  4. 4. 0x03 使用

0x00 前言

每次部署总是会遇到 Python 版本问题,这里记录下在 Debian 10 或 Ubuntu 20.04 上编译安装 Python 3.10 的步骤。

PS: Ubuntu 22.04 LTS 默认已经是 Python 3.10 了,真好.jpg

0x01 安装依赖

首先更新 APT 软件源。

1
sudo apt update

然后安装软件包。

1
sudo apt install -y build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev libbz2-dev pkg-config liblzma-dev sqlite3 tk-dev uuid-dev libgdbm-compat-dev

0x02 编译

1. 下载并解压源代码

前往 Python 官网 即可获得 Python 源码下载链接。

1
wget https://www.python.org/ftp/python/3.10.9/Python-3.10.9.tar.xz

下载太慢可以去 淘宝镜像 去下载。

1
wget https://registry.npmmirror.com/-/binary/python/3.10.9/Python-3.10.9.tar.xz

下载完成后解压源码并进入目录。

1
2
tar -xvf Python-3.10.9.tar.xz
cd Python-3.10.9

2. 检查依赖并配置

PS: 此处的检查依赖和配置都是执行命令后自动检查和配置的,无误后会自动生成 Makefile 文件。

1
./configure --enable-optimizations --with-lto

–enable-optimizations 用 PROFILE_TASK 启用以配置文件主导的优化(PGO)
–with-lto 在编译过程中启用链接时间优化(LTO)
开启 lto 后编译时间会有 可感知的延长,如果急用可以先取消,后面再进行二次编译。

使用这两项配置可优化 Python 性能

建议用 –enable-optimizations –with-lto (PGO + LTO)配置 Python,以便实现最佳性能。
来自 Python 官方文档 3.1.3. 性能选项

PS: 很多教程在编译时加了 --enable-shared 参数,但为了避免后续与原系统 Python 产生影响,最好避免使用该参数。
参考: 聊一聊 Python 安装中的 –enable-shared

3. 编译

1
make -j4

-j 后面为编译线程数,可根据机器情况进行调整。

4. 安装

1
sudo make altinstall

使用 install 会直接替换当前 Python 的链接,所以使用 altinstall 防止对系统原 Python 造成影响,进而防止影响依赖 Python 的系统组件。

0x03 使用

执行 python3.10 指令,就可以使用新安装的 Python 3.10 了。
pip 也有是 pip3.10

本文作者 : hank9999
版权声明 :本站所有文章除特别声明外,均采用 BY-NC-SA 4.0 许可协议。转载请注明出处!
本文链接 : https://blog.hank.ltd/compile-and-install-python-3.10-on-debian-10-or-ubuntu-20.04/