Linux系统安装Python:Ubuntu apt与CentOS yum源配置教程

云舒
云舒
发布时间:2026-11-09| 5人浏览过
原创

本教程针对Linux服务器和桌面环境,详细讲解Ubuntu与CentOS两大发行版通过配置国内镜像源安装Python 3及pip的完整流程,涵盖apt与yum/dnf源优化、PPA与EPEL扩展源配置、版本验证及多环境共存方案。

在 Linux 生产与开发环境中,安装 Python 最安全、规范的路径是通过系统原生包管理器进行分发管理。直接从国外默认源拉取软件包常伴随超时、元数据校验失败和带宽受限问题。本文将针对 Debian/Ubuntu(apt 体系)与 RHEL/CentOS(yum/dnf 体系),提供完整的国内镜像源配置方法、扩展源添加方案、Python 3 及 pip 核心套件安装流程,以及多环境隔离验证指南。
Linux系统安装Python:Ubuntu apt与CentOS yum源配置教程
图 1:Linux 主流发行版 Python 软件包管理与镜像源拓扑架构全景

一、Linux 软件包管理器与软件源的工作机制

Linux 系统的软件生命周期由包管理器严格管控。Ubuntu 采用 Debian 规范的 apt(Advanced Package Tool),通过 .deb 归档包安装软件;CentOS 则属于 Red Hat 家族,使用 yum 或更新的 dnf,基于 .rpm 格式分发。

软件源的本质是一个依照特定目录树组织的远程 HTTP/HTTPS 文件服务器,其根目录下包含了软件包实体文件以及关键的索引数据库。当用户发起安装请求时,系统不会漫无目的地在互联网搜寻,而是读取本地记录的镜像源地址列表,先比对版本依赖关系与 GPG 签名散列值,确认无误后方从镜像节点下载二进制包并展开到系统目录。

在国内网络环境下,默认的海外官方源(如 archive.ubuntu.com 或 mirror.centos.org)常受骨干网链路波动与带宽策略制约。将软件源指向国内高带宽镜像站(如清华大学开源软件镜像站、阿里云镜像源等),能将下载速度提升数倍至数十倍,并有效杜绝因连接重置引发的元数据损坏。

Linux系统安装Python:Ubuntu apt与CentOS yum源配置教程
图 2:Ubuntu apt 与 CentOS yum/dnf 软件源配置体系与运行机制深度比对

二、Ubuntu 系统:apt 源配置与 Python 安装步骤

Ubuntu 官方软件仓库按组件分为 main(官方支持的自由软件)、restricted(专有设备驱动)、universe(社区维护软件)和 multiverse(受版权限制软件)。Python 3 核心包位于 main,而扩展工具通常位于 universe。

第 1 步:备份现有 sources.list 文件

在修改任何系统级配置文件前,必须先在同目录建立静态备份,以便在源格式错误或网络隔离时随时回滚恢复。

终端命令Bash
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak_$(date +%F)

第 2 步:配置国内优质镜像源

以 Ubuntu 22.04 LTS (Jammy Jellyfish) 为例,将官方域名替换为清华大学开源镜像站。编辑 /etc/apt/sources.list 文件,替换为如下配置:

配置文件内容/etc/apt/sources.list
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

若读者使用的是 Ubuntu 20.04 (Focal) 或 24.04 (Noble),请将上述代码中的代号 jammy 对应替换为 focal 或 noble。

第 3 步:刷新软件索引并安装 Python 3 套件

保存文件后,必须执行更新索引命令,使本地缓存捕获镜像站的最新目录哈希。随后安装 Python 3 解释器、pip 包管理器以及虚拟环境模块 python3-venv。

终端命令Bash
sudo apt update sudo apt install -y python3 python3-pip python3-venv python3-dev
命令输出(示例):Hit:1 https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy InRelease Hit:2 https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates InRelease Reading package lists... Done Building dependency tree... Done The following additional packages will be installed: python3.10 python3-pip-whl python3-setuptools Setting up python3 (3.10.6-1~22.04) ... Setting up python3-pip (22.0.2+dfsg-1ubuntu0.4) ... Processing triggers for man-db ...

第 4 步(可选):通过 deadsnakes PPA 安装指定版本

如果当前 Ubuntu LTS 自带的 Python 版本低于业务要求(例如系统默认自带 3.10,但业务需要 3.11 或 3.12),无需冒险手动编译源码,推荐引入社区公认的 deadsnakes PPA 仓库:

终端命令Bash
sudo apt install -y software-properties-common sudo add-apt-repository -y ppa:deadsnakes/ppa sudo apt update sudo apt install -y python3.11 python3.11-venv python3.11-dev
命令输出(示例):PPA publishes dbgsym, apt-add-repository enabled dbgsym Repository: 'deb https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu/ jammy main' Description: This PPA contains more recent Python versions... Reading package lists... Done Setting up python3.11 (3.11.9-1+jammy1) ...
Linux系统安装Python:Ubuntu apt与CentOS yum源配置教程
图 3:Ubuntu 平台 apt 镜像源配置与 Python 完整安装执行流水线

三、CentOS 系统:yum 源配置与 Python 安装步骤

CentOS 系统的仓库管理有其特殊性。对于已过生命周期的 CentOS 7,官方于 2024 年 6 月停止维护并将所有 RPM 包移至归档仓库(Vault);对于较新的 CentOS Stream 8/9 或兼容系统(Rocky Linux / AlmaLinux),则使用具备模块流(AppStream)特性的 dnf。

第 1 步:备份 /etc/yum.repos.d 目录

CentOS 将不同源分散保存在独立的 .repo 文件中。执行如下命令建立备份目录并归档现有源:

终端命令Bash
sudo mkdir -p /etc/yum.repos.d/repo_bak sudo cp -a /etc/yum.repos.d/*.repo /etc/yum.repos.d/repo_bak/

第 2 步:配置基础镜像源与 EPEL 企业扩展源

针对仍在使用中的 CentOS 7,原官方 mirrorlist 已失效,必须切换至国内 Vault 归档镜像(如阿里云镜像源);随后必须安装企业级软件源 epel-release 以补齐 Python 依赖包。

终端命令(CentOS 7 换源与 EPEL 安装)Bash
# 下载阿里云 CentOS 7 Vault 基础源 sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo # 安装 EPEL 扩展软件仓库 sudo yum install -y epel-release # 替换 EPEL 源为国内阿里云镜像 sudo sed -i 's|^#baseurl=http://download.fedoraproject.org/pub/epel/|baseurl=https://mirrors.aliyun.com/epel/|' /etc/yum.repos.d/epel.repo sudo sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel.repo
系统版本补充说明:如果您运行的是 CentOS Stream 9 或 Rocky Linux 9,系统已标配 dnf 工具,无需修改 Vault,仅需执行 sudo dnf install -y epel-release 并将对应 repo 内的链接替换为镜像源即可。

第 3 步:重建元数据缓存并安装 Python 3

清除旧的 RPM 校验和缓存,下载新镜像源的 repodata 数据并构建本地 SQLite 索引库,然后执行安装:

终端命令Bash
sudo yum clean all sudo yum makecache sudo yum install -y python3 python3-pip python3-devel
命令输出(示例):Loaded plugins: fastestmirror Cleaning repos: base extras updates epel Metadata Cache Created Resolving Dependencies --> Running transaction check ---> Package python3.x86_64 0:3.6.8-21.el7_9 will be installed --> Processing Dependency: python3-libs(x86-64) = 3.6.8-21.el7_9 ---> Package python3-pip.noarch 0:9.0.3-8.el7 will be installed Running transaction Installing : python3-libs-3.6.8-21.el7_9.x86_64 Installing : python3-3.6.8-21.el7_9.x86_64 Installing : python3-pip-9.0.3-8.el7.noarch Complete!
Linux系统安装Python:Ubuntu apt与CentOS yum源配置教程
图 4:CentOS / RHEL 环境下 yum 源与 EPEL 扩展源配置及安装流程

四、安装结果验证与多版本环境管理规范

软件包部署完成后,必须对执行路径和动态链接进行明确验证,以杜绝因环境变量覆盖导致的“假安装”。

终端命令(基础验证)Bash
python3 --version pip3 --version which python3
命令输出(示例):Python 3.10.12 pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10) /usr/bin/python3
重要警告:严禁直接覆写 /usr/bin/python 软链接!
在多数 Linux 系统(尤其是 CentOS 7/8)中,系统级核心工具如 yum、firewalld、cloud-init 强依赖 Python 默认解释器。若强行将 /usr/bin/python 指向其他版本,将直接导致包管理器崩溃,引发系统运维故障。

规范管理模式推荐:

  1. 业务隔离首选虚拟环境(Virtualenv / venv):无论使用 Ubuntu 还是 CentOS,所有业务项目均应运行于独立的虚拟环境中。执行 python3 -m venv /opt/myproject_env 并使用 source /opt/myproject_env/bin/activate 激活,包依赖完全闭环,不污染底层操作系统。
  2. 显式命令版本调用:若系统同时存在多个版本,优先在脚本首行(Shebang)写明特定版本,如 #!/usr/bin/env python3.11,或直接通过 python3.11 myscript.py 执行。
  3. 系统替代机制(update-alternatives):若确需在交互式 Shell 下切换全局 python3 命令指向,应使用标准工具注册:
    终端命令Bash
    sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 2 sudo update-alternatives --config python3
Linux系统安装Python:Ubuntu apt与CentOS yum源配置教程
图 5:Python 安装后结果验证与生产环境多版本共存管理决策树

五、常见报错排查与针对性处理

1. Ubuntu 换源后提示 “NO_PUBKEY” 公钥未导入

表现原因:当新源的 GPG 公钥未被写入本地 /etc/apt/trusted.gpg.d/ 时,apt update 会因安全验证失败而拒绝拉取软件包。

解决命令:从 Ubuntu 公钥服务器手动抓取并导入缺失的密钥(以缺失密钥 871920D1991BC93C 为例):

终端命令Bash
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 871920D1991BC93C # 在较新 Ubuntu 22.04+ 系统推荐写法: sudo gpg --no-default-keyring --keyring /etc/apt/trusted.gpg.d/custom.gpg --keyserver keyserver.ubuntu.com --recv-keys 871920D1991BC93C

2. CentOS 7 提示 “Cannot find a valid baseurl for repo: base/7/x86_64”

表现原因:CentOS 7 镜像官方源已被整体归档下线,原镜像列表路由(mirrorlist)返回 404。

解决对策:必须将所有仓库文件的 mirrorlist 注释掉,并将 baseurl 明确重定向为支持归档的国内镜像站路径(如阿里云 Vault 镜像或华为云镜像),清理缓存后重新生成即可。

3. 新版 Linux 下 pip install 触发 “externally-managed-environment”

表现原因:在 Debian 12 / Ubuntu 24.04 及后续遵循 PEP 668 的系统中,系统禁止在全局 Python 解释器中直接通过 pip 安装第三方轮子,以防止破坏 apt 维护的系统级 Python 依赖。

标准实践:遵循上文第四节说明,创建并激活专属的 venv 虚拟环境后再使用 pip 安装;若临时仅供个人单用户执行,可追加 --user 参数安装到用户家目录,切勿使用强制参数 --break-system-packages 破坏系统根环境。

相关专题:

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

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