
- 系统 Python 的风险:CentOS 6 和 7 的默认 Python 版本是 2.6。强烈建议不要直接替换或删除系统自带的 Python (通常是
/usr/bin/python),很多系统工具(如yum)和依赖库都使用这个版本的 Python,强制替换会导致系统不稳定或无法使用。 - 最佳实践:正确的做法是编译安装一个新的 Python 2.7 版本到自定义路径(
/usr/local/python2.7),然后创建一个符号链接或配置环境变量来使用它,这样既能获得新版本,又不会破坏系统。
下面我将提供两种方法,强烈推荐第一种方法,因为它更安全、更灵活。
从源码编译安装(推荐)
这是最标准、最灵活、最安全的方法,我们将 Python 2.7 安装到 /usr/local 目录下。
第 1 步:安装编译所需的依赖包
在编译 Python 之前,需要确保系统安装了所有必要的开发工具和库。
# 对于 CentOS 6 和 7 sudo yum groupinstall "Development Tools" -y # 安装 Python 2.7 可能需要的其他依赖库 sudo yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y
第 2 步:下载 Python 2.7 源码码
访问 Python 官方下载页面,获取 2.7 系列的最新稳定版源码包,目前最新的 2.7 版本是 7.18。

# 创建一个临时工作目录 cd /tmp # 下载 Python 2.7.18 的源码包 (请根据需要替换为最新版本) wget https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz # 解压 tar -zxvf Python-2.7.18.tgz # 进入解压后的目录 cd Python-2.7.18
第 3 步:配置、编译和安装
我们配置 Python 的安装路径,然后进行编译和安装。
# 配置安装路径为 /usr/local # --enable-optimizations 会进行一些优化,让 Python 运行得更快,但编译时间稍长 ./configure --prefix=/usr/local --enable-optimizations # 编译 (这个过程可能需要几分钟到十几分钟,取决于你的 CPU 性能) make # 安装 (需要 root 权限) sudo make install
如果以上步骤都成功,你的新 Python 2.7 就会安装在 /usr/local/bin/python2.7。
第 4 步:创建符号链接(可选但推荐)
为了方便在命令行中使用,可以创建一个指向 python2.7 的软链接 python2。
# 创建软链接 sudo ln -s /usr/local/bin/python2.7 /usr/local/bin/python2
你可以直接在命令行输入 python2 来启动新版本的 Python 解释器。
# 验证版本 python2 --version # 应该输出: Python 2.7.18
第 5 步:配置 pip 和 easy_install
Python 2.7 通常会自带 pip 和 easy_install,如果它们没有自动添加到系统路径,可以手动创建链接。
# 创建 pip 的软链接 sudo ln -s /usr/local/bin/pip2.7 /usr/local/bin/pip2 # 验证 pip pip2 --version
第 6 步:为特定用户配置环境变量(可选)
如果你只想让某个特定的用户使用 Python 2.7,而不是全局修改,可以编辑该用户的 ~/.bashrc 或 ~/.bash_profile 文件。
# 打开配置文件 (以用户 'myuser' 为例) sudo -u myuser vim /home/myuser/.bashrc
在文件末尾添加以下内容:
# 将 Python 2.7 的路径添加到 PATH 的最前面 # 注意:这会覆盖系统默认的 python 命令 export PATH="/usr/local/bin:$PATH" # 可选:设置默认的 pip 命令 alias pip=pip2
保存文件后,让用户重新登录或执行 source ~/.bashrc 使配置生效。
使用第三方源(不推荐,但简单)
对于 CentOS 7,可以使用 IUS (Inline with Upstream Stable) 仓库来安装 Python 2.7。这种方法仍然会安装一个独立的 python2.7,而不是替换系统 python,所以相对安全。
第 1 步:安装 EPEL 仓库(如果尚未安装)
sudo yum install epel-release -y
第 2 步:安装 IUS 仓库
# 安装 EPEL 源的 yum 配置工具 sudo yum install yum-utils -y # 添加 IUS 仓库 sudo yum install https://repo.ius.io/ius-release-el7.rpm -y
第 3 步:安装 Python 2.7 和 pip
sudo yum install python27 python27-pip python27-devel -y
第 4 步:验证安装
安装完成后,新版本的 Python 会被放置在 /usr/bin/python2.7。
# 验证版本 python2.7 --version # 应该输出: Python 2.7.18 # 验证 pip pip2.7 --version
注意:这种方法安装的 pip 可能是 pip2.7,而不是 pip2,你可以创建软链接来统一命令:
sudo ln -s /usr/bin/pip2.7 /usr/bin/pip2
总结与对比
| 特性 | 源码编译 | IUS 仓库 |
|---|---|---|
| 安全性 | 高,完全自定义,不影响系统 Python | 较高,安装到独立路径,不覆盖系统 Python |
| 灵活性 | 极高,可以自定义所有编译选项(如优化、模块支持) | 较低,只能使用预编译的包 |
| 依赖管理 | 需要手动安装所有编译依赖 | yum 会自动处理依赖 |
| 适用性 | 所有 CentOS 版本 (6, 7, 甚至更老的) | 主要适用于 CentOS 7 (6 也有,但版本可能旧) |
| 推荐度 | ★★★★★ (强烈推荐) | ★★★☆☆ (方便快捷,但不够灵活) |
最终建议
对于任何生产环境或需要长期维护的系统,请务必使用方法一(源码编译),它虽然步骤多一些,但能给你最大的控制权和最稳定的体验。
对于临时使用或快速测试,方法二是一个不错的选择,但要清楚它的局限性。
