如何在RHEL 9上为遗留应用安装Python 2.7?
在RHEL 9上安装Python 2.7的正确方法
RHEL 9默认不再提供Python 2.7的官方软件包,因为Python 2已于2020年停止维护。针对你的情况,推荐以下几种可行方案:
方案1:使用Pyenv安装(推荐,隔离环境)
Pyenv可以方便管理多个Python版本,不会干扰系统默认的Python环境:
- 先安装依赖包:
sudo dnf install gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel libffi-devel xz-devel git - 克隆Pyenv仓库到用户主目录:
git clone https://github.com/pyenv/pyenv.git ~/.pyenv - 配置环境变量,将以下内容添加到
~/.bashrc或~/.zshrc文件末尾:export PYENV_ROOT="$HOME/.pyenv" command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)" - 重新加载配置文件使设置生效:
source ~/.bashrc - 安装Python 2.7.18(Python 2的最终版本):
pyenv install 2.7.18 - 设置当前工作目录默认使用Python 2.7:
pyenv local 2.7.18
方案2:从源码编译安装
如果之前编译失败,大概率是缺少必要的编译依赖,按以下步骤操作:
- 安装编译所需的工具和依赖包:
sudo dnf groupinstall "Development Tools" sudo dnf install zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel tk-devel libffi-devel xz-devel - 获取Python 2.7.18源码包,从Python官方渠道下载对应压缩包后上传到服务器,执行解压:
tar xzf Python-2.7.18.tgz cd Python-2.7.18 - 配置编译参数,指定安装路径(避免覆盖系统Python):
./configure --prefix=/usr/local/python27 --enable-optimizations - 编译并安装:
make -j$(nproc) sudo make altinstall - 可选:将Python 2.7的可执行路径添加到系统PATH,方便调用:
之后可通过echo 'export PATH="/usr/local/python27/bin:$PATH"' >> ~/.bashrc source ~/.bashrcpython2.7命令调用该版本,避免影响系统默认的python命令。
方案3:使用第三方源(不推荐,存在兼容性风险)
如果依赖包安装过于繁琐,可尝试启用CentOS Vault的Python 2.7源,但需注意RHEL 9与CentOS 8的软件包可能存在兼容性冲突:
- 创建CentOS Vault源配置文件:
sudo tee /etc/yum.repos.d/CentOS-Vault.repo <<EOF [centos-vault] name=CentOS-8 - Vault baseurl=http://vault.centos.org/8.5.2111/AppStream/x86_64/os/ gpgcheck=1 gpgkey=http://vault.centos.org/8.5.2111/BaseOS/x86_64/os/RPM-GPG-KEY-centosofficial enabled=1 EOF - 安装Python 2.7及pip:
此方法可能引发系统依赖冲突,仅作为备选方案。sudo dnf install python2 python2-pip
注意:Python 2.7已停止安全更新,建议尽快推动遗留应用迁移至Python 3版本,避免安全漏洞风险。
内容的提问来源于stack exchange,提问作者shashank verma
相关产品推荐
相关产品推荐

