You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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导致的系统工具冲突:

  1. 先把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
    
    后面的数字是优先级,数字越大优先级越高。
  2. 切换默认Python版本:
    alternatives --config python
    
    按照提示输入对应数字,就能选择默认用Python2.6还是2.7。
  3. 同样要做方法1里的yum脚本修改,确保yum始终用Python2.6运行——毕竟系统核心工具依赖的是2.6,绝对不能动它。

⚠️ 重要提醒:千万别删除CentOS6自带的Python2.6!很多系统核心工具(包括yum、各类系统配置工具)都依赖它,删了会直接导致系统瘫痪。

内容的提问来源于stack exchange,提问作者user9099802

火山引擎 最新活动