Ubuntu通过Deadsnakes PPA源安装Python 3.8

林见深
林见深
发布时间:2026-10-24| 6人浏览过
原创

在 Ubuntu 系统中,官方主仓库通常只提供与当前发行版版本绑定的默认 Python 解释器。如果开发工作需要维护较早的历史项目或满足特定运行环境的要求,安装 Python 3.8 最便捷且规范的途径是通过社区广泛认可的 Deadsnakes PPA(Personal Package Archive)源。借助该源提供的预编译 deb 包,开发者无需手动从源码编译安装,既节约了编译所需的时间与工具链配置成本,又能让 Python 3.8 与系统自带的默认 Python 和谐共存。

一、准备工作与环境依赖

在添加外部 PPA 仓库之前,系统需要具备管理软件源的必要工具。Ubuntu 系统通过 software-properties-common 软件包提供 add-apt-repository 命令。若系统环境较为纯净(如精简版服务器镜像或容器),应先确认该工具包已安装就绪。

终端命令:更新索引并安装基础工具
sudo apt update
sudo apt install -y software-properties-common

确认基础工具正常工作后,即可将 Deadsnakes 维护的官方团队源添加到系统的 APT 源配置列表中。该源持续为 Ubuntu 各主流版本构建并打包多个 Python 版本的独立二进制包。

二、通过Deadsnakes PPA安装Python 3.8全流程

整个安装流程由添加仓库、刷新源索引、安装目标软件包以及版本验证四个连续阶段构成。按序执行以下步骤即可快速完成就绪:

Ubuntu通过Deadsnakes PPA源安装Python 3.8
图1:Ubuntu环境下添加PPA源并安装Python 3.8的标准操作步骤

步骤 1:导入 Deadsnakes PPA 软件源

执行添加源命令。命令交互过程中系统会自动拉取对应的 GPG 签名公钥,按回车键确认继续:

终端命令:添加软件源
sudo add-apt-repository ppa:deadsnakes/ppa

步骤 2:更新本地包索引

在较新版本的 Ubuntu 中,添加 PPA 后系统通常会自动刷新元数据。为确保万无一失,建议显式执行一次源更新:

终端命令:刷新包索引
sudo apt update

步骤 3:安装 Python 3.8 及周边核心拓展包

在 Debian/Ubuntu 体系下,Python 的标准库模块被拆解为了多个子包。为了保障后续能顺畅构建独立虚拟环境和编译带 C 拓展的第三方库,除了安装主程序 python3.8 外,强烈建议同步安装 python3.8-venv、python3.8-dev 与 python3.8-distutils:

终端命令:安装完整组件包
sudo apt install -y python3.8 python3.8-venv python3.8-dev python3.8-distutils

步骤 4:校验安装结果

安装完成后,直接调用对应版本的二进制命令查看版本号,确认解释器已可正常加载:

终端命令:检查版本号
python3.8 --version
终端示例输出
Python 3.8.18

三、系统共存原理与路径隔离架构

安装完成后,理解新安装的 Python 3.8 与 Ubuntu 系统环境的关系至关重要。Deadsnakes PPA 的核心设计原则是非侵入式安装。它不会修改或覆盖系统的默认解释器路径,而是将自身注册为独立的二进制实体。

Ubuntu通过Deadsnakes PPA源安装Python 3.8
图2:Ubuntu内部系统关键环境与Deadsnakes安装版本的并存与隔离机制

如架构图所示,Ubuntu 自身的各种系统级工具(例如包管理客户端 apt、网络配置工具 netplan 等)都是基于特定 Python 版本编写的系统脚本,其 shebang 头均指向 /usr/bin/python3。Deadsnakes PPA 将解释器安装为 /usr/bin/python3.8,配套的标准库则存放在 /usr/lib/python3.8。二者路径互不交叠,从物理结构上确保了多版本并存的安全性。

四、关键操作误区与正确实践辨析

在多版本 Python 的使用过程中,不少初学者常因追求使用上的“方便”,采取了一些看似合理实则蕴含隐患的操作。下面针对最常见的两类做法进行辨析:

Ubuntu通过Deadsnakes PPA源安装Python 3.8
图3:修改系统全局软链接的风险与标准虚拟环境方案对比

误区 1:直接修改 /usr/bin/python3 符号链接

部分教程建议将 /usr/bin/python3 重新链接至 /usr/bin/python3.8,以便在终端中直接输入 python3 就能调用 3.8。这种做法看似省去了敲写版本后缀的麻烦,但存在严重的破坏性:Ubuntu 的包管理器(如 python3-apt)和桌面环境很多是针对发行版原装版本(例如 Ubuntu 20.04 默认的 3.8 或 22.04 默认的 3.10)通过 C 扩展专门编译的。一旦全局 python3 目标被替换,系统在执行 apt 更新或调用系统脚本时,将直接抛出 ModuleNotFoundError: No module named 'apt_pkg' 等底层错误,导致系统维护功能瘫痪。

误区 2:使用 update-alternatives 强行接管 python3

update-alternatives 适合用来管理多版本的通用工具(如 gcc、java),但将其用于系统级核心的 python3 时同样具有上述隐患。如果只是希望在终端下输入 python(不带版本数字)时默认进入 Python 3.8,可以安全地为当前登录用户配置 Shell 别名(alias),或配置虚拟环境,而不是强行篡改全局系统级指向。

五、规范使用:基于 Python 3.8 构建虚拟环境

在实际项目开发中,最推荐的做法是以 Python 3.8 解释器为基准,为每一个具体项目创建独立的虚拟运行环境(virtual environment)。这样既能享受 Python 3.8 运行时的所有特性,又将第三方依赖完全隔离在项目目录之内。

1. 创建虚拟环境

进入项目所在目录,显式调用 python3.8 -m venv 命令创建专属环境目录(如 .venv):

终端命令:创建虚拟环境
python3.8 -m venv .venv

2. 激活虚拟环境并检验

通过执行激活脚本载入环境:

终端命令:激活环境
source .venv/bin/activate

激活后,命令行提示符通常会带上 (.venv) 前缀。此时直接输入 python -V 和 pip -V,解析出的均已自动锁定至该虚拟环境内的 Python 3.8 解释器:

终端命令:验证当前活跃版本
python --version
pip --version
终端示例输出
Python 3.8.18
pip 20.0.2 from /home/ubuntu/project/.venv/lib/python3.8/site-packages/pip (python 3.8)

3. 在环境中升级与管理依赖

虚拟环境内的包管理操作完全独立,不需要加 sudo,也不会影响宿主机的任何全局包:

终端命令:升级pip与安装第三方包示例
pip install --upgrade pip
pip install requests

当开发任务完成需要退出该环境时,只需执行:

终端命令:退出虚拟环境
deactivate

六、常见问题排查与解决

问题 1:创建虚拟环境时提示 Ensurepip is not available

如果在执行 python3.8 -m venv 时系统报错提示 The virtual environment was not created successfully because ensurepip is not available,这是因为未安装 Python 3.8 对应的虚拟环境支持子包。只需补齐安装该子模块即可解决:

sudo apt install -y python3.8-venv
问题 2:执行安装脚本时提示 No module named 'distutils'

Python 3.8 中部分第三方构建工具仍旧依赖 distutils。如果遇到此报错,说明系统中尚未包含针对 3.8 版本的独立 distutils 分支:

sudo apt install -y python3.8-distutils
问题 3:添加 PPA 出现网络连接超时或 GPG 报错

在某些受限内网或代理环境下,add-apt-repository 连接 Launchpad 可能会偶发超时。此时可检查系统的 HTTP/HTTPS 代理配置,或尝试使用标准 keyserver 选项重新导入签名。

七、总结与核心操作备忘

通过 Deadsnakes PPA 安装 Python 3.8 是 Ubuntu 平台下处理非默认 Python 需求的高效且标准的方式。保持系统整洁与运行稳定的核心在于尊重系统原生解释器,依靠虚拟环境隔离业务需求。最后通过总结卡片回顾全流程的关键要素:

Ubuntu通过Deadsnakes PPA源安装Python 3.8
图4:Ubuntu多版本Python管理与规范使用的关键原则总结

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

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 算法库。