python升级导致yum命令无法使用的解决办法(修改版)

1、报错信息:

There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:

   No module named yum

Please install a package which provides this module, or
verify that the module is installed correctly.

It's possible that the above module doesn't match the
current version of Python, which is:
2.7.8 (default, Oct 28 2016, 14:33:56) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)]

If you cannot solve this problem yourself, please go to 
the yum faq at:
  http://yum.baseurl.org/wiki/Faq
  

错误原因:错误信息描述为 yum 所依赖的python 不相符,请安装相对应的python即可

2、查看yum版本

[root@centos ~]# rpm -qa |grep yum
yum-plugin-security-1.1.30-37.el6.noarch
yum-3.2.29-75.el6.centos.noarch
yum-utils-1.1.30-37.el6.noarch
PackageKit-yum-0.5.8-26.el6.x86_64
yum-metadata-parser-1.1.2-16.el6.x86_64
PackageKit-yum-plugin-0.5.8-26.el6.x86_64
yum-plugin-fastestmirror-1.1.30-37.el6.noarch

3、查看python版本

[root@centos ~]# whereis python
python: /usr/bin/python2.6 /usr/bin/python /usr/lib/python2.6 /usr/lib64/python2.6 /usr/local/bin/python2.7 /usr/local/bin/python2.7-config /usr/local/lib/python2.7 /usr/include/python2.6 /usr/share/man/man1/python.1.gz

果然装了两个版本python

4、执行python,查看到使用2.7.8的版本

[root@centos ~]# python
Python 2.7.8 (default, Oct 28 2016, 14:33:56) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

5、猜测yum调用了高版本的python。

6、解决方法:
查找yum和 yum-updatest文件,并编辑此py文件

[root@centos ~]# which yum
/usr/bin/yum
[root@centos ~]# cat /usr/bin/yum
#!/usr/bin/python
import sys
try:
    import yum
except ImportError:
    print >> sys.stderr, """\
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:

   %s

Please install a package which provides this module, or
verify that the module is installed correctly.
.......


#!/usr/bin/python
改为:
#!/usr/bin/python2.6

然后保存OK.

如果不修改/usr/bin/yum ,则yum无法使用
如果不修改/usr/bin/yum-updatest 会出现如下错误

 File "/usr/sbin/yum-updatesd", line 35, in 
    import dbus
ImportError: No module named dbus

当然,修改完后记着

[plain]view plain copy print?
[root@localhost google_appengine]# /sbin/service yum-updatesd restart  
Stopping yum-updatesd:                                     [FAILED]  
Starting yum-updatesd:                                     [  OK  ]  

补充:yum基于python写的。

http://blog.csdn.net/ei__nino/article/details/8495295

 

LEAVE A COMMENT