排除有助于我们,更好地理解!

因为之前重新给系统安装过
Python最新的版本且应用到了整个系统中,但因为有些程序会依赖系统自带的Python版本,导致这些程序就无法正常使用了。
- 有一台
CentOS7的阿里云机器,系统默认的Python2.7.5的版本。前段时间已经宣布Python2只维护到2020年,所以以后编程都需要往Python3上靠,于是就手动编译安装了。升级Python3.6之后,导致yum工具无法使用了。看了报错信息,大致可以判断是Python3导致的,所有整理一下解决的方法,哈哈哈。
# yum工具报错信息
[escape@localhost ~]# yum
File "/usr/bin/yum", line 30
^
SyntaxError: EOF while scanning triple-quoted string literal
- 后来在网上有搜了下,肯定了之前的判断,就是
Python3新语法导致的。系统中的yum工具也是使用Python2的语法编写的。当升级至Python3时,原本使用Python2语法的except语句不兼容Python3版本,导致报错。
# yum工具的报错代码
......
try:
import yummain
yummain.user_main(sys.argv[1:], exit_code=True)
except KeyboardInterrupt, e:
print >> sys.stderr, "\n\nExiting on user cancel."
sys.exit(1)
- 修复方法
- 【方法一】使用
#!/usr/bin/python2语法 - 【方法二】修改
except为Python3的语法
- 【方法一】使用
#!/usr/bin/python2
import sys
try:
import yum
except ImportError:
......
......
try:
import yummain
yummain.user_main(sys.argv[1:], exit_code=True)
except KeyboardInterrupt as e:
print("\n\nExiting on user cancel.")
sys.exit(1)
- 之后,就可以放心的使用了。