当前位置:

首页 > 编程开发 > Linux系统安装Python指南:Ubuntu/CentOS包管理器与源码编译方法

Linux系统安装Python指南:Ubuntu/CentOS包管理器与源码编译方法

针对Ubuntu与CentOS系统的Python安装指南,详细介绍APT/DNF/YUM包管理器安装、PPA扩展以及从源码编译安装Python的完整步骤、避坑注意事项与多版本共存方案。

假设你刚拿到一台全新的云服务器或虚拟机,正准备部署一个基于现代框架的后端服务,运行 python3 --version 却发现系统只自带了一个版本过低的 Python,甚至在某些精简镜像中根本没有默认解释器。直接强行替换默认命令可能导致包管理器或系统脚本瘫痪,而不加思考地拉取源码编译又常会遭遇缺少 OpenSSL、zlib 或 SQLite3 等底层库的构建错误。在 Linux 环境中安装 Python,通常有两大主流路径:系统包管理器快速安装 与 源码编译定制安装。本文将针对 Ubuntu 与 CentOS(含 RHEL 兼容发行版)两个代表性生态,梳理这两条路径的具体操作规范、核心注意事项及验证流程。

Linux系统安装Python指南:Ubuntu/CentOS包管理器与源码编译方法
图 1:Linux 环境下 Python 两种安装方式的选择逻辑

一、使用包管理器安装(推荐优先考虑)

利用系统包管理器安装是最平稳、耗时最短的方式。包管理器会自动配置可执行路径、解析底层动态库依赖,并且由发行版官方维护安全更新。不过其局限在于官方源中提供的版本通常较保守;若需更新的版本,Ubuntu 可以引入社区维护的知名 PPA 源,CentOS 则可配合 EPEL 或 AppStream 模块。

1. Ubuntu 系统(APT 与 PPA)

Ubuntu 默认仓库中通常自带当前 LTS 发行版支持的主流 Python 版本。如果需要安装默认仓库中的最新维护包,直接使用 apt 即可:

# 更新索引并安装 Python3 及其包管理工具
sudo apt update
sudo apt install -y python3 python3-pip python3-venv

当你需要指定的次版本(例如在 Ubuntu 20.04/22.04 上安装更新的 Python 3.12),官方源往往尚未收录。此时业界通用的做法是引入 Ubuntu 核心开发者团队维护的 deadsnakes PPA 归档:

# 安装管理软件源所需的工具
sudo apt update
sudo apt install -y software-properties-common

# 添加 deadsnakes PPA 软件源
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update

# 安装指定版本的 Python 解释器与虚拟环境支持
sudo apt install -y python3.12 python3.12-venv python3.12-dev
提示:通过 PPA 安装的特定版本会被命名为 python3.12,它与 Ubuntu 基础系统自带的 /usr/bin/python3 彼此独立并存,不会破坏系统自带工具(如 apt 自身依赖的脚本)。

2. CentOS / RHEL 系统(YUM 与 DNF)

在 CentOS 7 或基于 RHEL 8/9 的兼容发行版(如 Rocky Linux、AlmaLinux)中,包管理机制有所不同。CentOS 7 默认的 YUM 源中 Python 版本较为陈旧,通常需启用 EPEL 源;而 RHEL/CentOS 8 及以上系统推荐使用模块流(module stream)或 DNF。

在 CentOS 7 系统中的操作:

# 启用企业版附加软件包 (EPEL) 源
sudo yum install -y epel-release
sudo yum update -y

# 安装 EPEL 维护的 Python 3
sudo yum install -y python3 python3-pip python3-devel

在 CentOS Stream / Rocky Linux / RHEL 8 或 9 系统中的操作:

# 列出可用 Python 模块流
sudo dnf module list python3*

# 启用并安装指定模块流(例如 python39 或 python311)
sudo dnf module enable -y python39
sudo dnf install -y python39 python39-pip python39-devel

二、从源码编译安装(适用精确版本与隔离需求)

如果需要在较旧的生产系统上运行特定版本、要求开启特定的解释器编译参数(例如 --enable-optimizations 提升运行时性能),或者处于无法连接外部 APT/PPA 源的企业私有内网,源码编译是唯一也是最可靠的途径。

源码编译的核心逻辑分为四个阶段:安装构建工具与开发库、解压并执行预检查配置、多核并行编译、使用隔离方式安装至系统。

Linux系统安装Python指南:Ubuntu/CentOS包管理器与源码编译方法
图 2:从依赖安装到安全写入的源码构建标准操作步骤

第一步:补齐底层编译依赖

这是编译成功最关键的一步。Python 依赖 C 编译器构建,其核心扩展模块(如处理 HTTPS 通信的 ssl、本地数据库 sqlite3、压缩模块 zlib)均需要宿主机提供头文件与静态/动态链接库。若提前不装,编译往往不会中断,但最终生成的 Python 将缺失核心模块,导致后续运行 pip install 时报 SSL 认证失败或解包错误。

在 Ubuntu / Debian 体系上执行:

sudo apt update
sudo apt install -y build-essential zlib1g-dev libncurses5-dev libgdbm-dev \
libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev \
libbz2-dev wget curl llvm make gcc

在 CentOS 7 / RHEL 体系上执行:

sudo yum groupinstall -y "Development Tools"
sudo yum install -y openssl-devel bzip2-devel libffi-devel zlib-devel \
readline-devel sqlite-devel wget curl gcc make

第二步:下载并校验官方源码包

推荐直接前往 Python 官方源码归档站点下载 Gzipped source tarball。以下以编译安装 Python 3.11.8 为例:

# 切换至临时目录下载源码
cd /usr/local/src
sudo wget https://www.python.org/ftp/python/3.11.8/Python-3.11.8.tgz

# 解压文件并进入源码根目录
sudo tar -zxvf Python-3.11.8.tgz
cd Python-3.11.8

第三步:配置编译参数

运行 ./configure 脚本来探测当前系统环境,生成 Makefile。建议启用 --enable-optimizations 参数,这会开启 Profile Guided Optimization (PGO) 和 LTO,通过运行一套基准测试套件让编译产物获得约 10%~20% 的运行速度提升(代价是编译时间会稍微延长)。

# 配置检查环境与性能优化
sudo ./configure --enable-optimizations

第四步:多核编译与安装(核心警告:必须使用 altinstall)

使用 nproc 命令获取当前机器可用的 CPU 核心数,并传递给 make -j 参数开启多线程编译,大幅缩减构建耗时。编译完成后,务必使用 make altinstall 替代 make install。

# 获取核心数并启动多核并行编译
sudo make -j $(nproc)

# 执行安全安装
sudo make altinstall
严重警告:绝对不要在生产机上直接运行 sudo make install。标准的 make install 会直接把可执行文件写入为 /usr/local/bin/python3 甚至覆盖系统的默认符号链接,导致系统级管理工具(如 CentOS 依赖的 yum/dnf、Ubuntu 依赖的 unattended-upgrades)发生底层语法不兼容直接崩溃。make altinstall 会严格保留版本后缀(如 python3.11),跳过创建无后缀的软链接。

三、核心底层结构对比:包管理器 vs 源码编译

理解两者在 Linux 目录层级中的落脚点,能帮你快速定位路径冲突或依赖解析问题:

Linux系统安装Python指南:Ubuntu/CentOS包管理器与源码编译方法
图 3:包管理器与源码编译的核心特性及系统路径对比

四、安装验证与环境测试

完成上述任一途径安装后,不能仅仅输入一次命令就默认成功。需要验证三项核心指标:解释器主程序、SSL 通信支持以及配套的虚拟环境构建。

1. 验证可执行程序及位置

# 检查版本(以安装 3.11 为例)
python3.11 --version
# 示例输出: Python 3.11.8

# 查看实际二进制文件路径
which python3.11
# 源码编译默认输出: /usr/local/bin/python3.11
# PPA/系统包管理器默认输出: /usr/bin/python3.11

2. 验证关键扩展模块(SSL 与 SQLite)

很多开发者在编译安装成功后,一使用 pip 下载包就报 Can't connect to HTTPS URL because the SSL module is not available。通过以下单行命令可直接测试:

# 验证 SSL 与 SQLite 支持
python3.11 -c "import ssl; import sqlite3; print('SSL 版本:', ssl.OPENSSL_VERSION); print('SQLite3 正常')"

若能够正确打印出 OpenSSL 的版本号并输出“SQLite3 正常”,说明编译阶段的所有必要依赖库均已完整嵌入,后续的包管理与数据存取不会受阻。

五、最佳实践:多版本共存与隔离运维

在长期维护的 Linux 服务器上,极不建议去强制修改 /usr/bin/python3 的软链接指向。无论你采用何种方式安装了新的 Python 版本,推荐的使用流程均是通过 Python 虚拟环境(Virtual Environment) 将应用依赖和解释器绑定。

# 1. 进入你的项目部署目录
cd /data/www/my_project

# 2. 使用刚才安装的特定版本创建隔离环境
python3.11 -m venv venv

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

# 4. 激活后,环境内直接使用通用的 python 与 pip,互不干扰
(venv) $ which python
# 输出: /data/www/my_project/venv/bin/python
(venv) $ python --version
# 输出: Python 3.11.8

# 5. 退出当前虚拟环境
(venv) $ deactivate
Linux系统安装Python指南:Ubuntu/CentOS包管理器与源码编译方法
图 4:Linux 系统下 Python 多版本共存与隔离运维结构

只要遵守“系统默认解释器保持不动,外部扩展版本使用 altinstall 独立落盘,具体工程通过 venv 封装”的基本规范,无论是 Ubuntu 还是 CentOS,都能在确保操作系统底座稳定的同时,平滑运行各种版本的 Python 应用程序。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
作者最新文章
编程开发
相关文章 更多
Windows系统Python安装教程:下载、勾选PATH及环境变量配置
Windows系统Python安装教程:下载、勾选PATH及环境变量配置

针对Windows初学者的Python安装实战指南。详细讲解如何从Python官网下载匹配架构的安装包,重点演示安装首屏勾选“Add python.exe to PATH”的关键操作,并提供使用python --version和py命令验证环境变量的具体步骤,帮助新手快速搭建开发环境并排查路径问题。

ubuntu安装python:环境配置、虚拟隔离与验证排错指南
ubuntu安装python:环境配置、虚拟隔离与验证排错指南

指导开发者在 Ubuntu 系统上正确配置 Python 开发环境。涵盖 python --version 检查、venv 虚拟环境创建、pip 依赖安装及 sys.executable 验证,提供清晰的决策图与排错流程,避免全局污染。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

PDF教程
PDF教程

正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

Mac软件 更多
AirBuddy 3 macOS版
AirBuddy 3 macOS版
macOS

AirBuddy 3 是面向 macOS 的蓝牙外设增强工具,可集中查看 AirPods、Beats 与苹果设备电量,提供快速连接、播放控制、电量提醒、桌面小组件和多台 Mac 外设接力等功能。

AirServer macOS版
AirServer macOS版
macOS

AirServer macOS版可把 Mac 转换为无线投屏接收端,通过 AirPlay 或 Google Cast 接收手机、平板和电脑画面,并支持多设备同时连接、高清镜像及会话录制,适合家庭娱乐、课堂教学、会议演示和应用展示。

AnyDesk macOS版
AnyDesk macOS版
macOS

AnyDesk macOS版是一款适用于远程办公、设备维护和客户支持的远程桌面工具,可连接并操作异地计算机,支持文件传输、无人值守访问、会话权限控制及跨平台协作。

WINDOWS 更多
讯飞绘文 网页版
讯飞绘文 网页版
Windows

讯飞绘文网页版是科大讯飞推出的AI图文创作与内容运营工具,覆盖热点选题、文章生成、稿件校对、智能配图、排版发布和数据复盘等环节,适合自媒体创作者及内容团队在线使用。

AirServer Windows版
AirServer Windows版
Windows

AirServer Windows版可把电脑变成AirPlay、Google Cast和Miracast无线投屏接收端,适合会议演示、课堂教学及家庭大屏分享。发送设备通常无需另装客户端,并可同时接收和智能排列多个镜像会话。

AlwaysUp Windows版
AlwaysUp Windows版
Windows

AlwaysUp是一款面向Windows的系统服务注册与程序托管工具,可让普通应用、脚本及批处理在无人登录时随系统启动,并通过状态检测、异常重启、资源监控和邮件通知保障关键任务持续运行。