Ubuntu 20.04与22.04安装Python 3.11的注意事项

星野
星野
发布时间:2026-11-07| 5人浏览过
原创

针对Ubuntu 20.04与22.04两个长期支持版本,系统梳理安装Python 3.11的核心方案、关键差异、误区预防以及环境隔离的最佳实践。

在 Ubuntu 20.04 与 22.04 上安装非默认的 Python 3.11,核心目标是平稳引入新版本解释器,同时完全保护操作系统底层工具链不受干扰。本文梳理两个 LTS 系统的默认环境差异、可靠的安装流程、必须规避的系统破坏行为,以及后续配套模块与虚拟环境的管理要点。

一、系统基线差异:两代系统的默认版本背景

Ubuntu 的系统工具(例如包管理器 APT 的辅助模块、桌面组件、云镜像初始化工具 cloud-init 等)深度依赖系统自带的 Python 运行环境。在安装 Python 3.11 之前,明确系统的原生状态是避免故障的第一步。

操作系统版本 系统默认 Python 版本 官方 APT 默认源提供范围 引入 Python 3.11 的主要途径
Ubuntu 20.04 LTS (Focal Fossa) Python 3.8.10 3.8 系列为主 deadsnakes PPA 或源码编译
Ubuntu 22.04 LTS (Jammy Jellyfish) Python 3.10.x 3.10 系列为主 deadsnakes PPA 或源码编译

在这两个系统里,官方软件仓库都没有将 Python 3.11 作为默认解释器提供。要获取预编译的二进制包,社区最成熟的方案是使用 deadsnakes PPA。由于 20.04 与 22.04 底层构建依赖与 glibc 版本存在代际差异,PPA 仓库针对两者的打包文件各自分立,不能把跨版本的软件包混用。

Ubuntu 20.04与22.04安装Python 3.11的注意事项 图 1:系统原生解释器与新增 Python 3.11 的空间隔离结构

二、标准安装步骤:通过 PPA 安装的正确流程

在生产与开发服务器中,直接添加经过广泛验证的 ppa:deadsnakes/ppa 是最稳妥的二进制安装方式。安装过程需要按顺序完成系统工具准备、源注册、元数据刷新和组件获取。

Ubuntu 20.04与22.04安装Python 3.11的注意事项 图 2:通过 deadsnakes PPA 安装 Python 3.11 的完整阶段步骤

1. 更新本地包并安装必要依赖

在配置外部仓库前,需要确保系统具备管理 PPA 的组件和最新的 CA 证书链:

sudo apt update
sudo apt install -y software-properties-common ca-certificates

2. 注册 deadsnakes 仓库并刷新缓存

运行以下指令将 PPA 源添加进系统的 APT 源列表中。该命令会自动下载并导入 GPG 签名公钥:

sudo add-apt-repository ppa:deadsnakes/ppa -y
sudo apt update

3. 安装 Python 3.11 核心包与关联套件

不要只执行 apt install python3.11。在实际业务环境中,如果缺少虚拟环境模块与构建头文件,后续安装依赖库时经常报错。建议连同配套包一并安装:

sudo apt install -y python3.11 python3.11-venv python3.11-dev

4. 验证安装结果

检查可执行程序是否正确进入 /usr/bin,并验证输出:

python3.11 --version
which python3.11
Python 3.11.9 /usr/bin/python3.11

三、核心禁忌:绝对不能碰的两大系统雷区

重大风险警告:不可全局覆盖 python3 命令 Ubuntu 20.04 和 22.04 中的诸多底层核心工具是用 Python 编写的。如果你通过建立软链接、强行覆盖 /usr/bin/python3 或使用 update-alternatives 将主解释器切换为 3.11,系统级包管理器(如 apt、add-apt-repository)将直接崩溃,产生类似 ModuleNotFoundError: No module named 'apt_pkg' 的严重故障。
Ubuntu 20.04与22.04安装Python 3.11的注意事项 图 3:篡改系统级符号链接导致核心包管理器损坏的机理

具体来看,需要重点注意以下两个行为边界:

  • 严禁使用 update-alternatives 重定向全局 python3:许多网上教程建议通过 update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1 来改变系统默认命令,这在 Ubuntu 上是危险的做法。虽然它看起来方便了当前终端输入,但所有显式调用 /usr/bin/python3 的系统脚本都会被迫在 3.11 下执行,进而因为缺少 python3-apt 的 3.11 兼容包而瞬间崩溃。
  • 不要使用 get-pip.py 强行覆盖全局 pip:避免在 root 权限下运行 python3.11 get-pip.py 去劫持 /usr/local/bin/pip 或 /usr/bin/pip。全局安装包容易与系统的 APT 打包版本在 /usr/lib/python3/dist-packages 发生文件污染。

四、模块支持与构建环境:不可忽视的配套包

只装主解释器并不等于准备好了完整的运行环境。在实际部署 Python 项目时,通常需要处理以下两类配套环境问题:

1. 为什么必须单独安装 python3.11-venv

在 Debian/Ubuntu 体系中,标准库的 venv 模块被剥离成独立包。如果直接运行 python3.11 -m venv myenv,系统会给出错误提示:

The virtual environment was not created successfully because ensurepip is not available. On Debian/Ubuntu systems, you need to install the python3-venv package.

针对 Python 3.11,必须执行 sudo apt install python3.11-venv 才能补齐 ensurepip 及其底层轮子支持,否则无法正确生成带有独立 pip 的虚拟环境。

2. 为什么需要 python3.11-dev 与编译链

在 Python 3.11 下安装包含 C/C++ 扩展的第三方库(例如 uwsgi、较旧版本的科学计算轮子、需要本地编译绑定的驱动)时,编译器需要对应的头文件与静态库。如果未装 dev 包,pip install 在编译阶段就会抛出 fatal error: Python.h: No such file or directory。

如果业务涉及 C 扩展编译,安装以下组合可以大幅减少依赖构建问题:

sudo apt install -y python3.11-dev build-essential libssl-dev libffi-dev

五、规范的使用姿势:虚拟环境与工程隔离

保证 Ubuntu 系统安全与业务灵活性的核心方案是:全局系统保持默认不动,业务需求全部收敛在虚拟环境中。

创建并使用 Python 3.11 虚拟环境的完整流程如下:

# 1. 在项目目录中直接使用 python3.11 唤起 venv
python3.11 -m venv .venv

# 2. 激活虚拟环境
source .venv/bin/activate

# 3. 此时终端内的 python 与 pip 已经自然隔离并绑定至 3.11
which python
python --version
pip --version
/home/ubuntu/myproject/.venv/bin/python Python 3.11.9 pip 24.0 from /home/ubuntu/myproject/.venv/lib/python3.11/site-packages/pip (python 3.11)

在虚拟环境中,你可以自由更新 pip 和安装依赖库,所有变动仅作用于 .venv 文件夹内部,丝毫不会污染系统的 /usr/lib/ 目录,从源头上杜绝了运维事故。

六、决策排查清单:部署前的核对总结

在 Ubuntu 20.04 或 22.04 机器上操作 Python 3.11 时,可以对照以下决策矩阵核对配置方案:

Ubuntu 20.04与22.04安装Python 3.11的注意事项 图 4:Ubuntu 20.04 / 22.04 下 Python 3.11 维护决策矩阵

只要保持对操作系统默认环境的敬畏,牢记“通过 PPA 引入独立解释器、通过配套包补齐 venv/dev、通过独立虚拟环境承载业务”这三项原则,在 Ubuntu 20.04 和 22.04 上使用 Python 3.11 就可以做到既享受新版本带来的性能提升,又完全保持宿主机系统的长期稳定。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。