CentOS7升级Python3后,yum使用报错

原因:这是因为yum采用Python作为命令解释器,这可以从/usr/bin/yum文件中第一行#!/usr/bin/python发现。而python版本之间兼容性不太好,使得2.X版本与3.0版本之间存在语法不一致问题。而CentOS 7自带的yum采用的是python2.7,当系统将python升级到3.6后,出现语法解释错误。
解决方法:
1、vim /usr/libexec/urlgrabber-ext-down
2、#! /usr/bin/python   =》 #! /usr/bin/python2.7

File "/usr/libexec/urlgrabber-ext-down", line 28
问题现象:

原因:
出现上面 问题是我在安装python3.6版本,需要让python2和python3共存,没有修改/usr/libexec/urlgrabber-ext-down文件;

解决办法:
只需要修改第一行:
#! /usr/bin/python修改成 #! /usr/bin/python2.7即可。

再试yum安装命令后即可正常执行

参考链接1:https://blog.youkuaiyun.com/qq_40467692/article/details/118553094

参考链接2:https://blog.itpub.net/20674423/viewspace-2888352/

附:CentOS7安装Python3

一、环境准备:

  • python源码下载

python源码下载:https://www.python.org/ftp/python/

此处使用的源码版本为:Python-3.9.18.tar.xz

二、编译

  • 升级GCC版本

由于高版本的python编译需要高版本的GCC,Centos7.8的默认GCC安装是4.8.5,所以需要先编译安装高版本的GCC。

安装编译python依赖包

yum -y install zlib-devel.x86_64 bzip2-devel.x86_64 openssl-devel.x86_64 sqlite-devel.x86_64 libffi-devel.x86_64 ncurses-devel.x86_64 readline-devel.x86_64 tk-devel.x86_64

解压/编译源码并安装

tar -Jxvf Python-3.9.18.tar.xz
cd Python-3.9.18/
./configure --prefix=/opt/python3.9.18
make -j $(nproc)
make install

操作很顺利,中途没有报错

升级Python

上面的编译安装其实只是将编译好的版本安装到了/opt/python3.9.18 目录下,并没有将原有python版本进行升级操作,由于原来Centos7.8中自带的python版本是2.7 并且yum工具也依赖了2.7的版本,所以在进行python升级的时候还需要注意保留原来的python

执行:ll /usr/bin/python 可以看到当前的python的两个软连接指向的都是/usr/bin/python2.7

删除或者备份当前的python软连接(这里不建议删除,保留,设置优先级即可,见文末)

rm -f /usr/bin/python

删除之后yum工具是不能用的,还需要重新指定yum工具的python,分别修改文件:/usr/bin/yum 和 /usr/libexec/urlgrabber-ext-down 的第一行,将“#! /usr/bin/python”改为“#! /usr/bin/python2.7”

vim /usr/bin/yum
vim /usr/libexec/urlgrabber-ext-down
vim /usr/share/createrepo/genpkgmetadata.py
vim /usr/share/createrepo/worker.py
vim /usr/bin/repotrack

最后制作新编译好的python3.9.18的软连接和pip3的软连接

ln -s /opt/python3.9.18/bin/python3 /usr/bin/python
ln -s /opt/python3.9.18/bin/pip3 /usr/bin/pip

Centos7.8上升级python3.9.18版本成功,并且不影响原来的yum使用python2.7版本。

参考文章:https://zhuanlan.zhihu.com/p/675944050

当然更简单的操作是直接使用yum安装python3

yum install python3

保留原来的python2,设置python3的优先级高一些

alternatives --install /usr/bin/python python /usr/bin/python3 2
alternatives --config python

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值