python升级带来的yum异常:File "/usr/bin/yum", line 30


python升级带来的yum异常:File "/usr/bin/yum", line 30



问题:

$ yum 

File "/usr/bin/yum", line 30 

except KeyboardInterrupt, e: 

                                         ^

SyntaxError: invalid syntax

 

原因:

这是因为yum采用python作为命令解释器,这可以从/usr/bin/yum文件中第一行#!/usr/bin/python发现。而python版本之间兼容性不太好,使得2.X版本与3.0版本之间存在语法不一致问题。而CentOS 5自带的yum采用的是python2.4,当系统将python升级到2.6或3.0后,出现语法解释错误。

 

解决办法:

很简单,一是升级yum,一是修改yum的解释器为旧版本python2.4(如果你没有采用覆盖升级的话)。

升级yum的作法就不详述了。修改yum的解释器为旧版本python2.4:

$ vi /usr/bin/yum

将第一行"#!/usr/bin/python" 改为 "#!/usr/bin/python2.4"即可。


或者修改默认的python版本,/usr/bin/python为2.4.


[root@rhel6lhr Packages]# yum install  perl-IO-Socket-SSL
  File "/usr/bin/yum", line 30
    except KeyboardInterrupt, e:
                            ^
SyntaxError: invalid syntax
[root@rhel6lhr Packages]# python
Python 3.6.4 (default, Apr 15 2018, 10:55:33) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit
Use exit() or Ctrl-D (i.e. EOF) to exit
>>> exit()
[root@rhel6lhr Packages]# 
[root@rhel6lhr Packages]# 
[root@rhel6lhr Packages]# 
[root@rhel6lhr Packages]# which python
/usr/bin/python
[root@rhel6lhr Packages]# python
python             python2.6          python3            python3.6-config   python3.6m-config  python_bk          
python2            python2_bk         python3.6          python3.6m         python3-config     
[root@rhel6lhr Packages]# ll /usr/bin/python
lrwxrwxrwx 1 root root 34 Apr 15  2018 /usr/bin/python -> /usr/bin/python3.6.4/bin/python3.6
[root@rhel6lhr Packages]# rm -rf /usr/bin/python
[root@rhel6lhr Packages]# ll /usr/bin/python    
ls: cannot access /usr/bin/python: No such file or directory
[root@rhel6lhr Packages]# ll /usr/bin/python3.6.4/bin/python3.6
-rwxr-xr-x 2 root root 10037966 Apr 15  2018 /usr/bin/python3.6.4/bin/python3.6
[root@rhel6lhr Packages]# python2
Python 2.6.6 (r266:84292, Sep  4 2013, 07:46:00) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit
Use exit() or Ctrl-D (i.e. EOF) to exit
>>> 
>>> exit()
[root@rhel6lhr Packages]# 
[root@rhel6lhr Packages]# 
[root@rhel6lhr Packages]#  ln -s /usr/bin/python2 /usr/bin/python






About Me

........................................................................................................................

● 本文作者:小麦苗,部分内容整理自网络,若有侵权请联系小麦苗删除

● 本文在itpub、博客园、优快云和个人微 信公众号( xiaomaimiaolhr )上有同步更新

● 本文itpub地址: http://blog.itpub.net/26736162

● 本文博客园地址: http://www.cnblogs.com/lhrbest

● 本文优快云地址: https://blog.youkuaiyun.com/lihuarongaini

● 本文pdf版、个人简介及小麦苗云盘地址: http://blog.itpub.net/26736162/viewspace-1624453/

● 数据库笔试面试题库及解答: http://blog.itpub.net/26736162/viewspace-2134706/

● DBA宝典今日头条号地址: http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826

........................................................................................................................

● QQ群号: 230161599 (满) 、618766405

● 微 信群:可加我微 信,我拉大家进群,非诚勿扰

● 联系我请加QQ好友 646634621 ,注明添加缘由

● 于 2019-07-01 06:00 ~ 2019-07-31 24:00 在西安完成

● 最新修改时间:2019-07-01 06:00 ~ 2019-07-31 24:00

● 文章内容来源于小麦苗的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

● 版权所有,欢迎分享本文,转载请保留出处

........................................................................................................................

小麦苗的微店 https://weidian.com/s/793741433?wfr=c&ifr=shopdetail

小麦苗出版的数据库类丛书 http://blog.itpub.net/26736162/viewspace-2142121/

小麦苗OCP、OCM、高可用网络班 http://blog.itpub.net/26736162/viewspace-2148098/

小麦苗腾讯课堂主页 https://lhr.ke.qq.com/

........................................................................................................................

使用 微 信客户端 扫描下面的二维码来关注小麦苗的微 信公众号( xiaomaimiaolhr )及QQ群(DBA宝典)、添加小麦苗微 信, 学习最实用的数据库技术。

........................................................................................................................

欢迎与我联系

 

 



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26736162/viewspace-2651463/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26736162/viewspace-2651463/

在执行 `yum install ntpdate` 时,如果遇到如下错误: ``` File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: ``` 此错误通常表明 Python 语法不兼容问题,具体来说是 Python 2 与 Python 3 的语法差异导致的。在 Python 3 中,异常捕获的语法格式已更改,不再支持 `except Exception, e`,而是使用 `except Exception as e`。 ### 可能原因 1. **Python 版本升级导致的兼容性问题**:系统可能已经将默认 Python 版本从 Python 2 更改为 Python 3,而 `/usr/bin/yum` 脚本仍然尝试以 Python 3 解释执行,但其语法仍基于 Python 2 编写[^2]。 2. **YUM 工具未适配 Python 3**:尽管某些 Linux 发行版(如 CentOS 8)默认使用 Python 3,但 YUM 的某些版本仍然依赖 Python 2,尤其是旧版本的 YUM 包。 ### 解决方案 1. **检查默认 Python 版本**: 执行以下命令查看当前默认 Python 版本: ```bash python --version ``` 如果输出为 `Python 3.x`,则说明 YUM 正在使用 Python 3 来执行,而它可能尚未适配。 2. **修改 `/usr/bin/yum` 解释器路径**: 编辑 `/usr/bin/yum` 文件: ```bash sudo vi /usr/bin/yum ``` 将第一行: ```bash #!/usr/bin/python ``` 改为明确使用 Python 2: ```bash #!/usr/bin/python2 ``` 3. **更新 YUM 以支持 Python 3(适用于 CentOS 8 及以上)**: 如果系统为 CentOS 8 或更高版本,推荐使用 `dnf` 替代 `yum`,它原生支持 Python 3: ```bash dnf install ntpdate ``` 4. **安装 Python 2 并设置为默认**(如必须使用 YUM): 安装 Python 2: ```bash sudo yum install python2 ``` 设置 Python 2 为默认解释器: ```bash sudo alternatives --set python /usr/bin/python2 ``` ### 示例:修改 `/usr/bin/yum` 文件内容 ```bash sudo sed -i '1s/python/python2/' /usr/bin/yum ``` 该命令将 `/usr/bin/yum` 文件首行的解释器路径从默认 Python 改为 Python 2。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值