File “/usr/bin/yum“, line 30 except KeyboardInterrupt, e: python版本问题造成的yum运行失败解决方法
目录
File “/usr/bin/yum”, line 30 yum安装软件时候报告的一个问题
File “/usr/bin/yum”, line 30
except KeyboardInterrupt, e:
^^^^^^^^^^^^^^^^^^^^
SyntaxError: multiple exception types must be parenthesized
这个问题是python版本问题造成的语法格式错误,需要指定正确的python版本的路径,在本例中,是在文件yum的第一行 /usr/bin/python 改为 /usr/bin/python2.7 。
再次执行yum
,还是会报错:
Traceback (most recent call last):
File “/usr/bin/yum”, line 4, in < module>
import yum
ModuleNotFoundError: No module named ‘yum’During handling of the above exception, another exception occurred:
Traceback (most recent call last): File “/usr/bin/yum”, line 6, in
< module>
print >> sys.stderr, “”"\ TypeError: unsupported operand type(s) for >>: ‘builtin_function_or_method’ and
‘_io.TextIOWrapper’. Did you mean “print(< message>,
file=<output_stream>)”?
解决办法:在yum文件的第30行,将该语句
except KeyboardInterrupt, e:
改为:
except KeyboardInterrupt as e:
File “/usr/libexec/urlgrabber-ext-down”, line 28 yum安装软件时候报告的另一个问题
File “/usr/libexec/urlgrabber-ext-down”, line 28
except OSError, e:
^^^^^^^^^^
SyntaxError: multiple exception types must be parenthesized
由于用户取消而退出
也是同样的python版本问题引起的。解决办法如下:
找到/usr/libexec/urlgrabber-ext-down 文件的第一行,修改python路径,改为 /usr/bin/python2.7
然后,找到第28行,修改:
except OSError, e:
, 改为
except OSError as e:
python和yum版本不一致问题总结
yum是用python作为解释器。
python升级容易引起yum问题。
常见的解决办法是在bash脚本文件里指定版本,以及修改某些不兼容的语法。
Centos 7.x版本对应的python版本通常是python2.7 。
作者:chinavas