这篇文章主要介绍了修复 CentOS7 升级 Python 到 3.6 版本后 yum 不能使用的问题, 本文给大家带来了解决方法, 需要的朋友可以参考下
之前把现有这台阿里 CentOS7.2 系统的 Python2.7.5 升级成 Python3.6 后, yum 工具就不能不觉使用了当时查了下说明 python 版本的问题, 但是用网上的方法还是没解决, 后面也就一直没管了最近要弄一个 Nodejs 小程序, 需要用 yum 安装一些开发工具, 不得不修复这个问题
1 yum 工具报错情况
直接执行 yum 命令就会提示 /usr/bin/yum 文件第 34 行有错误:
- [root@typecodes ~]# yum
- File "/usr/bin/yum", line 34
- ^
- SyntaxError: EOF while scanning triple-quoted string literal
- [root@typecodes ~]#
但是 vim 查看这个文件根本没有这一行:
2 解决方法
由于找不到报错的位置, 只能考虑重新安装 yum 了
2.1 下载 yum 安装包
- [root@typecodes ~]# wget -c http://yum.baseurl.org/download/3.4/yum-3.4.3.tar.gz
- [root@typecodes ~]# tar -zxf yum-3.4.3.tar.gz
- [root@typecodes ~]# cd yum-3.4.3/
接着使用
python2 yummain.py install yum
命令 (还是不能使用 python3 来执行) 重新安装 yum 工具:
2.2 执行 yum 命令
尝试执行 yum 命令, 在 /usr/bin/yum 文件的第 30 行报错:
- [root@typecodes yum-3.4.3]# yum
- File "/usr/bin/yum", line 30
- except KeyboardInterrupt, e: ^
- SyntaxError: invalid syntax
- [root@typecodes yum-3.4.3]#
显然上面的 except 是 python2 的写法, 当然不能使用默认的 Python3 来执行了于是把这个文件第 1 行的 #!/usr/bin/python 替换成 #!/usr/bin/python2
2.2 继续执行 yum 命令
尝试执行 yum -y update 命令更新 CentOS 系统, 结果在文件
/usr/libexec/urlgrabber-ext-down
第 28 行处还是报
SyntaxError: invalid syntax
的错误
问题是一样的, 要么把
/usr/libexec/urlgrabber-ext-down
文件中所有的 except 写法改成 Python3, 要么修改第 1 行的解释器声明显然第 2 种方法更新简单有效
3 解决完毕
到此, 可以愉快地使用 yum -y update 命令更新 CentOS 系统, 然后做开发了!
来源: http://www.phperz.com/article/18/0225/363237.html