在CentOS 7上安装Python 3.8.18并设置为默认版本

在CentOS 7.9上安装Python 3.8.18并设置为默认版本

我的环境

[root@c7bj ~]# uname -r
3.10.0-1160.119.1.el7.x86_64
[root@c7bj ~]# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)
[root@c7bj ~]# openssl version
OpenSSL 1.1.1k  25 Mar 2021 (Library: OpenSSL 1.1.1t  7 Feb 2023)
[root@c7bj ~]# python -V
Python 2.7.5
[root@c7bj ~]# python3 -V
Python 3.6.8
[root@c7bj ~]# python2 --version
Python 2.7.5
[root@c7bj ~]# python --version
Python 2.7.5
[root@c7bj ~]# which python
/usr/bin/python
[root@c7bj ~]# which python3
/usr/bin/python3
[root@c7bj ~]# which python2
/usr/bin/python2
[root@c7bj ~]# 

过程说明

用户想在CentOS 7上安装Python 3.8.18,并设置为默认版本。系统目前有Python 2.7.5和3.6.8,但用户需要升级到3.8。首先,我需要考虑CentOS 7的默认软件仓库可能没有Python 3.8,所以可能需要从源码编译或者使用第三方仓库。

用户可能已经知道,直接替换系统的Python2可能会有风险,因为很多系统工具依赖它。所以应该保留Python2,同时将Python3.8作为默认的python3,或者通过alternatives来管理版本。不过用户要求设置为默认Python版本,可能需要调整PATH或者使用update-alternatives。

接下来,我需要确定安装方法。源码编译是比较可靠的方式,但步骤较多。另外,是否可以使用EPEL或者其他仓库来安装?不过EPEL可能没有3.8版本。可能需要先安装必要的开发工具,比如gcc,make等。

然后,安装Python 3.8.18的依赖项,比如openssl-devel,bzip2-devel等。这些在编译时需要用到。用户可能需要先安装这些依赖包。

下载Python 3.8.18的源码,解压后进入目录,配置编译选项。这里可能需要指定–enable-optimizations来优化性能,同时设置prefix到/usr/local,这样不会干扰系统自带的Python。

编译完成后,使用make altinstall来避免覆盖现有的python3二进制文件。但用户想要设置为默认,可能需要创建符号链接或者使用update-alternatives来管理。

这时候需要检查现有的python3指向哪里,现在系统里的python3是3.6.8。用户可能希望将python3指向3.8.18,同时保持python2不变。这时候需要小心处理,避免破坏系统工具。

另外,用户可能还需要安装pip,并确保pip3也指向正确的版本。可能需要更新pip到最新版本。

最后,验证安装是否成功,以及默认的python命令是否指向3.8.18。但要注意,直接替换/usr/bin/python可能会影响系统脚本,所以更安全的做法是通过虚拟环境或者手动调整用户的shell配置文件,将PATH中的Python路径前置。

或者,使用alternatives系统来管理多个Python版本,这样用户可以选择默认版本而不影响系统默认。这可能更安全可靠。

总结步骤:安装依赖,下载源码,编译安装,设置alternatives,更新PATH,验证版本。需要注意权限问题,可能需要使用sudo。同时提醒用户不要替换系统自带的Python2,以免引发问题。

在CentOS 7上安装Python 3.8.18并设置为默认版本的步骤如下:

一、安装编译依赖

sudo yum install -y gcc openssl-devel bzip2-devel libffi-devel zlib-devel xz-devel \
make readline-devel sqlite-devel tk-devel wget

下载Python 3.8.18源码

国内服务器可能下载满,可以用迅雷、浏览器下载完成后ftp传上去

wget https://www.python.org/ftp/python/3.8.18/Python-3.8.18.tar.xz
tar xvf Python-3.8.18.tar.xz
cd Python-3.8.18

三、编译安装Python

# 配置编译参数(启用SSL、优化性能)
./configure --enable-optimizations --with-openssl=/usr/include/openssl
make -j$(nproc)
# 使用altinstall避免覆盖系统Python
sudo make altinstall  

四、验证安装

python3.8 -V
# 应输出 Python 3.8.18

五、设置为默认Python版本(两种方案)

方案1:使用 update-alternatives 管理版本

# 添加Python 3.8到alternatives系统
sudo update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.8 1

# 配置默认Python3
sudo update-alternatives --config python3
# 选择Python 3.8对应的编号

方案2:手动创建符号链接(谨慎操作)

# 备份原有Python3(如果存在)
sudo mv /usr/bin/python3 /usr/bin/python3.bak
# 创建新链接
sudo ln -s /usr/local/bin/python3.8 /usr/bin/python3

六、修复yum兼容性问题(关键步骤)

sudo vim /usr/bin/yum
# 将首行改为 #!/usr/bin/python2.7
sudo vim /usr/libexec/urlgrabber-ext-down
# 同样修改首行 #!/usr/bin/python2.7

七、验证默认Python版本

# 检查Python3的默认版本
python3 -V  # 应显示 Python 3.8.18
# 检查Python2不受影响
python2 -V  # 仍为 Python 2.7.5

八、升级pip并安装虚拟环境

python3 -m pip install --upgrade pip
python3 -m pip install virtualenv

注意事项:

不要修改 /usr/bin/python:系统工具依赖Python 2.7,仅修改python3的指向。
使用python3命令调用Python 3.8,而非直接使用python。
推荐使用虚拟环境管理项目依赖:

python3 -m venv myenv
source myenv/bin/activate

最终效果

[root@c7bj ~]# python3 -V
Python 3.8.18
[root@c7bj ~]# python2 -V
Python 2.7.5
[root@c7bj ~]# yum update  
# 确保系统工具仍正常工作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神奇的物种

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值