排除有助于我们,更好地理解!
因为之前重新给系统安装过
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)
- 之后,就可以放心的使用了。