Linux下Python安装指南:Ubuntu与CentOS常用命令
针对Ubuntu与CentOS两大常见Linux发行版的Python安装实用教程,覆盖系统包管理器直接安装、多版本管理以及源码编译安装的常用命令与关键避坑指南。
一、安装前的环境摸底与安装路径选择
绝大多数现代Linux发行版在初始化安装后,都自带了用于系统运维组件运行的Python环境。在执行任何安装命令之前,需要先确认当前系统是否已有Python以及其具体版本号。
终端中直接运行以下检测命令:
python3 --version
如果系统提示 command not found,说明当前环境未预装软链接,需要进一步检查安装路径。决定接下来如何安装的关键判断标准在于使用场景:
- 系统工具依赖或日常脚本执行:优先选择系统的原生包管理器(Ubuntu使用
apt,CentOS使用yum或dnf)。速度最快,依赖项自动解决,系统更新时能一并维护。 - 需要特定次版本或定制底层模块(如最新版优化):选择源码编译安装。可以指定安装到独立路径,不污染操作系统自带的Python环境。
二、Ubuntu环境下的常用安装命令
Ubuntu衍生自Debian,采用 apt 作为其核心包管理器。在Ubuntu中安装Python主要分为直接安装官方仓库版本与引入Deadsnakes PPA安装特定次版本两种方式。
1. 直接通过官方apt仓库安装
首先更新本地索引列表,随后安装 python3 核心以及包管理工具 python3-pip:
sudo apt update
sudo apt install -y python3 python3-pip python3-venv
安装完成后,检查对应工具是否就绪:
python3 -V
pip3 -V
pip 24.0 from /usr/lib/python3/dist-packages/pip (python 3.12)
2. 使用 PPA 安装指定版本(例如需要特定开发版本)
当官方仓库提供的版本与项目要求不一致时,可以通过社区维护的 deadsnakes PPA源来安装指定小版本(以安装 Python 3.11 为例):
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa -y
sudo apt update
sudo apt install -y python3.11 python3.11-venv python3.11-dev
安装完成后,可以直接通过版本后缀命令调用:
python3.11 --version
三、CentOS环境下的常用安装命令
在CentOS环境(如CentOS 7、CentOS Stream 8/9,或其兼容下游Rocky Linux/AlmaLinux)中,系统很多核心底层工具(如 yum 本身)高度依赖系统自带的Python 2或早期Python 3。因此,在安装新版本时需格外注意不要覆盖系统既有解释器。
1. CentOS 7 通过 EPEL 或 Software Collections (SCL) 安装
CentOS 7的官方源默认携带较旧的Python版本。如果需要并存较新的Python,最稳妥的方式是启用EPEL或者SCL源:
# 安装 EPEL 扩展仓库
sudo yum install -y epel-release
# 直接安装 EPEL 中提供的 python3(通常为 Python 3.6 左右)
sudo yum install -y python3 python3-pip
若需要更高版本(如Python 3.8/3.9),推荐启用SCL机制,该机制将环境安装到 /opt/rh/ 目录下,完全与系统隔离:
# 安装 SCL 源支持
sudo yum install -y centos-release-scl
# 安装指定版本软件集(以 rh-python38 为例)
sudo yum install -y rh-python38
# 临时启用该环境(仅在当前终端会话生效)
scl enable rh-python38 bash
2. CentOS Stream 8/9 或 RHEL 8/9 常用命令
新版系统使用 dnf 管理包,Python以模块化方式提供,可以直接查看并切换模块流:
# 查看当前可用的 Python 模块版本
sudo dnf module list python3*
# 安装默认的 Python 3 运行时与包管理工具
sudo dnf install -y python3 python3-pip
四、通用方案:源码编译安装(全平台适用)
当包管理器中的版本均不满足需求,或者需要完全自主控制编译选项时,直接从 Python 官方发布服务器下载源码进行构建是跨发行版的标准做法。
步骤一:安装构建编译所必须的基础工具与开发头文件
编译Python解释器需要C编译器以及各类基础库的头文件支持(如SSL、压缩、数据库支撑等)。如果缺失对应的依赖包,编译虽然可能成功,但生成的解释器在导入对应标准库(如 import ssl)时将直接报错。
在 Ubuntu 上执行:
sudo apt update
sudo apt install -y build-essential libssl-dev zlib1g-dev \
libncurses5-dev libncursesw5-dev libreadline-dev libsqlite3-dev \
libgdbm-dev libdb5.3-dev libbz2-dev libexpat1-dev liblzma-dev \
libffi-dev uuid-dev wget curl
在 CentOS 上执行:
sudo yum groupinstall -y "Development Tools"
sudo yum install -y openssl-devel bzip2-devel libffi-devel \
zlib-devel readline-devel sqlite-devel xz-devel wget
步骤二:下载源码包、解压并配置编译参数
以源码编译 Python 3.11.8 为例,先下载官方源码包并解压:
cd /tmp
wget https://www.python.org/ftp/python/3.11.8/Python-3.11.8.tgz
tar -zxvf Python-3.11.8.tgz
cd Python-3.11.8
运行配置检查。此处建议添加 --enable-optimizations 参数以启用高级优化选项(虽然会增加编译时长,但能提升解释器运行速度),并通过 --prefix 指定独立安装路径:
./configure --enable-optimizations --prefix=/usr/local/python311
步骤三:编译并使用 altinstall 写入目标目录
这里必须使用 make altinstall 而不是传统的 make install。两者的核心区别在于:altinstall 会自动跳过创建名为 python 或 python3 的主二进制符号链接,从而避免覆盖系统现有的核心环境。
# 使用 nproc 查看当前可用 CPU 核心数进行并行编译
make -j $(nproc)
sudo make altinstall
步骤四:设置路径或软链接
编译完成后,为了在任意终端方便地调用该版本,可以将其二进制文件软链接至 /usr/local/bin:
sudo ln -s /usr/local/python311/bin/python3.11 /usr/local/bin/python3.11
sudo ln -s /usr/local/python311/bin/pip3.11 /usr/local/bin/pip3.11
五、常见问题排查与关键注意事项
/usr/bin/python 指向其他非系统版本(例如 rm -f /usr/bin/python && ln -s ... /usr/bin/python)。在 Ubuntu 中可能破坏系统组件配置,在 CentOS 7 中会导致 yum 无法解析语法直接崩溃。
1. 为什么推荐隔离机制:使用 venv 虚拟环境
在较新的发行版中,全局通过 pip3 install 直接安装第三方模块可能会触发 error: externally-managed-environment 保护拦截。这是现代操作系统为了防止系统级依赖项被破坏而设置的策略。最标准的操作是在项目中使用内置的虚拟环境:
# 创建一个名为 myenv 的隔离环境
python3 -m venv myenv
# 激活虚拟环境
source myenv/bin/activate
# 此时提示符会发生变化,pip 安装仅作用于该环境
pip install requests
# 退出环境
deactivate
2. 常见核心命令速查表
| 操作目标 | Ubuntu 命令 | CentOS 命令 |
|---|---|---|
| 安装 Python 运行时 | sudo apt install -y python3 |
sudo yum install -y python3 |
| 安装 Pip 包管理器 | sudo apt install -y python3-pip |
sudo yum install -y python3-pip |
| 安装开发依赖包头 | sudo apt install -y python3-dev |
sudo yum install -y python3-devel |
| 创建独立虚拟环境 | python3 -m venv <env_name> |
python3 -m venv <env_name> |
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









