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

优快云 博客解析
https://blog.youkuaiyun.com/educast/article/details/35992127
在执行 `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、付费专栏及课程。

余额充值