在CentOS系统上更新Python,其实是个挺常见的需求。无论是为了兼容新项目,还是修复旧版本的安全漏洞,搞清楚当前版本情况是第一步。话不多说,直接看操作。
检查当前Python版本
在动手更新之前,先确认一下系统上已经安装了哪些Python版本。用下面这两条命令就能一目了然:

python --version # 检查Python 2.x(如果装了的话)
python3 --version # 检查Python 3.x(CentOS 7+默认带这个)
这样一来,就能判断系统是否需要更新,以及当前默认版本是什么。
更新系统包
做任何安装之前,先把系统包索引更新到最新,避免后续Python安装出现兼容性问题:
sudo yum update -y # 适用于CentOS 7
sudo dnf update -y # 适用于CentOS 8+
这一步会安装最新的安全补丁和Python所需的依赖,算是基础操作。
通过Yum/DNF安装/更新Python(推荐,稳)
用CentOS自带的包管理器来安装或更新Python,是最简单也最稳妥的办法。虽然版本可能不是最新的,但胜在兼容性好,不会影响系统工具。
- CentOS 7:
sudo yum install epel-release -y # 开启EPEL仓库,补充更多包 sudo yum install python3 -y # 安装/更新Python 3(比如3.6) - CentOS 8+:
sudo dnf install epel-release -y sudo dnf install python3 -y # 安装/更新Python 3(比如3.9)
装完后,用 python3 --version 确认一下版本。如果想把Python 3设为默认的 python 命令(可选操作),可以这么做:
sudo alternatives --install /usr/bin/python python /usr/bin/python3 1
sudo alternatives --config python # 从列表里选择Python 3
从源代码安装/更新Python(追新必备)
如果需要特定版本(比如3.11),或者想要自定义编译优化,那从源码编译是最灵活的选择。当然,代价是得手动管理依赖。
- 安装依赖:
sudo yum groupinstall "Development Tools" -y # 编译器、make等工具 sudo yum install openssl-devel bzip2-devel libffi-devel wget -y # Python编译所需依赖 - 下载并解压源码:
去Python官网找到最新版链接。比如Python 3.11.6:
cd /usr/src # 推荐把源码放这里 sudo wget https://www.python.org/ftp/python/3.11.6/Python-3.11.6.tgz sudo tar xzf Python-3.11.6.tgz cd Python-3.11.6 - 配置、编译、安装:
sudo ./configure --enable-optimizations # 开启性能优化 sudo make altinstall # 用altinstall,避免覆盖系统Python(安装后叫python3.11)注意:这里一定要用
altinstall而不是install,否则可能把系统默认的Python搞崩。 - 验证安装:
python3.11 --version # 换成你装的版本号
用pyenv管理多个Python版本
如果你需要在不同项目里来回切换Python版本(比如老的用3.8,新的用3.11),pyenv 是个神器。它不会动系统默认的Python,切换起来也很方便。
- 安装pyenv:
curl https://pyenv.run | bash然后把下面几行加到
~/.bashrc(或~/.zshrc)里,让pyenv生效:export PATH="$HOME/.pyenv/bin:$PATH" eval "$(pyenv init --path)" eval "$(pyenv virtualenv-init -)"最后刷新一下shell:
source ~/.bashrc - 安装并切换版本:
pyenv install 3.11.6 # 安装Python 3.11.6 pyenv global 3.11.6 # 设为当前用户的默认Python版本验证一下:
python --version # 应该显示3.11.6如果只想让某个项目用特定版本,而不影响全局,可以这样:
cd /path/to/project pyenv local 3.8.12 # 会在项目目录下生成一个.python-version文件
创建虚拟环境(隔离项目依赖的最佳实践)
更新完Python之后,一定记得用虚拟环境来隔离项目依赖,避免冲突。
- 安装venv模块(Python 3.3+自带):
sudo yum install python3-venv -y - 创建并激活虚拟环境:
python3 -m venv myenv # 创建一个名叫myenv的虚拟环境 source myenv/bin/activate # 激活它(命令行前面会显示(myenv))激活后,用
pip安装包(比如pip install numpy)就只会装在这个环境里。用完执行deactivate退出。
关键注意事项
- 备份数据: 做系统级改动之前,先把
/etc、/home等重要目录备份一下,哪怕用不上,心里也踏实。 - 检查兼容性: 确保你的应用(比如Web服务器、脚本)和新版Python能合得来。最好先在测试环境里跑一遍。
- 别动系统Python: CentOS的很多系统工具(比如
yum)依赖自带的Python 2或3。所以永远用altinstall或pyenv这类工具,避免直接替换系统默认版本,否则系统可能出问题。