使用 pyenv (强烈推荐)
pyenv 是一个极其强大的 Python 版本管理工具,它允许你在同一台机器上轻松安装和切换多个版本的 Python,而不会影响系统自带的 Python,这是开发环境管理的最佳实践。

优点:
- 多版本共存:可以安装和管理多个 Python 版本(如 3.8, 3.9, 3.10, 3.11)。
- 环境隔离:每个项目可以指定使用特定的 Python 版本,避免版本冲突。
- 不影响系统:不会覆盖系统自带的 Python,保证了系统的稳定性。
- 简单切换:一条命令即可切换全局或当前目录的 Python 版本。
安装步骤:
安装 pyenv 的依赖项
你需要安装编译 Python 所需的开发工具和库。
# 对于 CentOS 7 / 8 / Stream sudo yum groupinstall "Development Tools" sudo yum install -y git openssl-devel bzip2-devel libffi-devel xz-devel
安装 pyenv
使用 curl 安装 pyenv。
curl https://pyenv.run | bash
配置环境变量
安装完成后,你需要将 pyenv 添加到你的 shell 配置文件中,以便每次登录时都能加载它。
- 对于 Bash (默认):
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc
- 对于 Zsh:
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc echo 'eval "$(pyenv init -)"' >> ~/.zshrc
重新加载你的 shell 配置文件,让更改生效:

# 对于 Bash exec "$SHELL" # 对于 Zsh exec "$SHELL"
验证 pyenv 安装
检查 pyenv 是否正确安装。
pyenv --version # 应该输出类似 pyenv 1.x.x 的信息
使用 pyenv 安装 Python
现在你可以安装你想要的任何 Python 版本了,安装 Python 3.9.16:
# 安装指定版本 pyenv install 3.9.16 # 查看所有可安装的版本 pyenv install --list # 查看当前已安装的版本 pyenv versions
使用 Python 版本 安装完成后,你可以切换 Python 版本。
# 设置全局 Python 版本(对所有用户目录生效) pyenv global 3.9.16 # 验证当前使用的 Python 版本 python --version # 应该输出 Python 3.9.16 # 为当前目录设置 Python 版本(创建一个 .python-version 文件) # 进入你的项目目录,然后执行: # pyenv local 3.9.16 # 临时在当前 Shell 会话中切换版本 pyenv shell 3.8.18 python --version # 此时输出 Python 3.8.18
使用 EPEL 仓库 (简单快捷)
如果你的需求只是安装一个较新的、稳定的 Python 版本,并且不想进行复杂的版本管理,可以使用 EPEL (Extra Packages for Enterprise Linux) 仓库。

优点:
- 简单:一条
yum命令即可完成安装。 - 包管理:通过
yum管理,升级和卸载方便。
缺点:
- 版本可能过旧:EPEL 仓库提供的 Python 版本可能不是最新的。
- 可能冲突:可能会与系统自带的 Python 产生冲突(虽然通常不会覆盖系统命令,但需要小心)。
安装步骤:
安装 EPEL 仓库
# 对于 CentOS 7 sudo yum install -y epel-release # 对于 CentOS 8 / Stream sudo dnf install -y epel-release
安装 Python 3
EPEL 仓库通常会提供 python3 包。
# 对于 CentOS 7 sudo yum install -y python3 python3-pip # 对于 CentOS 8 / Stream (使用 dnf) sudo dnf install -y python3 python3-pip
验证安装
python3 --version # 应该输出一个版本号,Python 3.6.8 (CentOS 7) 或 Python 3.8.16 (CentOS 8) # pip3 也应该可用 pip3 --version
从源码编译安装 (最灵活)
如果你需要安装最新的、或者特定功能的 Python 版本,可以从 Python 官方网站下载源码进行编译安装,这与 pyenv 的底层原理类似,但需要手动管理。
优点:
- 版本最新:可以获取最新的稳定版或开发版。
- 自定义:可以开启或关闭特定的编译选项。
缺点:
- 复杂:步骤较多,容易出错。
- 手动管理:需要自己处理路径和版本切换。
安装步骤:
安装编译依赖 与方法一相同,这是编译的先决条件。
sudo yum groupinstall "Development Tools" sudo yum install -y git openssl-devel bzip2-devel libffi-devel xz-devel
下载 Python 源码
访问 Python 官网 获取最新版本的源码压缩包链接,然后使用 wget 下载,这里以 Python 3.11.4 为例。
# 创建一个临时目录 mkdir ~/python_src && cd ~/python_src # 下载源码 wget https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tgz # 解压 tar -xzf Python-3.11.4.tgz cd Python-3.11.4
配置和编译
# 配置安装路径(建议安装在 /usr/local/ 下,避免覆盖系统文件) # --enable-optimizations 会进行优化,编译时间稍长,但性能更好 ./configure --enable-optimizations # 编译 (使用 -j 参数可以利用多核 CPU 加速,-j4) make -j 4
安装
# 需要 root 权限进行安装 sudo make altinstall
注意:这里使用
make altinstall而不是make install。altinstall会避免覆盖系统默认的python可执行文件,防止破坏系统依赖。
验证安装
# 新安装的 Python 可执行文件通常在 /usr/local/bin/ 下 /usr/local/bin/python3.11 --version # 你也可以创建一个软链接,方便使用 sudo ln -s /usr/local/bin/python3.11 /usr/local/bin/python3 # 然后就可以直接使用 python3 命令了 python3 --version
总结与建议
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
pyenv |
最佳实践,多版本管理,环境隔离,不冲突 | 初次设置稍复杂 | 所有开发者,特别是需要管理多个项目或 Python 版本的人。 |
EPEL 仓库 |
极其简单,快速安装 | 版本可能旧,灵活性差 | 快速部署,对 Python 版本要求不高的服务器或个人使用。 |
| 源码编译 | 版本最新,可自定义 | 复杂,手动管理,易出错 | 需要最新版本或特定功能,且熟悉 Linux 编译流程的高级用户。 |
对于绝大多数用户,我强烈推荐使用 pyenv。 它为你提供了一个干净、灵活且强大的 Python 开发环境,是现代 Python 开发的必备工具。
