升级Python3后yum无法使用


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

升级Python3后yum无法使用


因为之前重新给系统安装过 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语法
    • 【方法二】修改exceptPython3的语法
#!/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)
  • 之后,就可以放心的使用了。

文章作者: Escape
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Escape !