CentOS 6下Python 2.7无法导入yum模块问题求助
解决CentOS 6下Python 2.7与yum模块冲突的问题
这个问题我维护老CentOS 6服务器时也碰到过——本质原因是CentOS 6的yum和系统自带的Python 2.6深度绑定,如果你把系统默认Python改成了2.7,yum调用时就会找不到依赖的yum模块(这些模块只安装在Python2.6的库路径里)。下面给你两个靠谱的解决方法:
方法1:修改yum脚本的解释器(快速解决)
直接让yum强制使用系统自带的Python2.6,不影响你用Python2.7做开发:
- 编辑yum的主执行脚本:
把第一行的vi /usr/bin/yum#!/usr/bin/python改成#!/usr/bin/python2.6,保存退出。 - 还要修改另一个依赖脚本,避免下载时出错:
同样把第一行的解释器改成vi /usr/libexec/urlgrabber-ext-down#!/usr/bin/python2.6。
改完之后再运行yum,应该就能正常使用了,你的Python2.7依然可以通过python2.7命令正常调用。
方法2:用alternatives管理多版本Python(更规范的长期方案)
如果需要经常切换Python版本,可以用系统的alternatives工具来管理,避免直接修改默认Python导致的系统工具冲突:
- 先把Python2.6和2.7注册到alternatives:
后面的数字是优先级,数字越大优先级越高。alternatives --install /usr/bin/python python /usr/bin/python2.6 1 alternatives --install /usr/bin/python python /usr/bin/python2.7 2 - 切换默认Python版本:
按照提示输入对应数字,就能选择默认用Python2.6还是2.7。alternatives --config python - 同样要做方法1里的yum脚本修改,确保yum始终用Python2.6运行——毕竟系统核心工具依赖的是2.6,绝对不能动它。
⚠️ 重要提醒:千万别删除CentOS6自带的Python2.6!很多系统核心工具(包括yum、各类系统配置工具)都依赖它,删了会直接导致系统瘫痪。
内容的提问来源于stack exchange,提问作者user9099802




