您的位置:首页 > 运维架构 > Linux

运行yum出现no module named yum的错误

2014-09-18 21:12 465 查看
今天下午审批的mongodb终于批下来了,迫切想拿着自己的程序去线上测试机跑一炮

系统环境如下:

cat /etc/issue Red Hat Enterprise Linux Server release 6.1 (Santiago)

本来系统配的环境是

python2.6 yum3.2.29

前些日子,有个python项目需要在上面运行,由于我原本的python环境是2.7.3的,所以我就索性将python换成2.7.3

在/etc/bin路径更换如下:



幸好我比较机智,没有将python2.6版本的删除,只是将/etc/bin/python link到python2.7下面

今天将爬虫往该机器上面搬时,首先发现没有python命令,所以我在/etc/profile的加了路径(export PATH=$PATH:/xx/xx/bin),source /etc/profile使之生效

接着看了缺了一些包,用pip install xx进行安装了

有一些系统软件需要使用却没有,所以打算用red Hat(centos)进行安装,发现yum命令不能用,提示no module named yum

刚看到的时候,我很奇怪,我明明是运行的yum,为什么会说没有module,难道系统把yum当成python命令执行了,除非现在的bash环境已经变成了python环境,我为了验证自己不是做梦,随手敲了一个import a,提示没有改命令,还好,我不是在做梦,是在bash环境下,一下子把我拉回到了现实世界

于是,我没有多看错误信息,以为是该机器本来就没有安装yum命令,所以上网各种查如何安装yum,教程也是很多,基本就是wget下来一些rpm包,然后使用rpm命令进行安装,中间还有一些依赖的包。但是我在重新安装yum的时候,发现同样报了错误,这次的错误我可是认真看了,说是not match the current python 2.7.3,我似乎明白了一些什么。

接着,我又去找bin目录下是否有yum的命令,发现有呀,包括yum命令和yum config文件都好好的,我终于明白了,原来运维给我的环境是好的,常用的python git yum等命令也都是有的,只是我自己把python从2.6升级到了2.7导致依赖于python的yum命令无法使用罢了。去网上查了一同也确认了就是这个问题。

这时候基本上有两个解决办法,

1.升级yum

2.安装合适版本的python

后面看到了一个方法,如果需要python2.7的话,可以同时安装两个版本的python,一个用于日常时候,一个给yum使用,教程链接如下:

http://toomuchdata.com/2014/02/16/how-to-install-python-on-centos/

我是个懒人,我感觉这个方法还是比较麻烦,所以就去/usr/bin目录下看了一会儿,发现其实我的python2.6还是在的,我并没有删除,于是又在网上看了一番,发现了一个办法,链接如下:

http://serverfault.com/questions/344127/installing-python-2-7-broke-yum

两种方法:

1.不要让/usr/bin/python指向别版本的python,就让它是原版本的python,如果需要用python2.7的话,指定路径到python2.7就可以了,原则上/usr/{bin,lib...}目录是不允许碰到,如果有需要的话,安装在/usr/local比较好(这种办法还是比较烦的,因为指定/usr/bin/python为2.6,那我的2.7地位何在,呜呜呜,我是个懒人)

2.编辑/usr/bin/yum,指定解析器为#!/usr/bin/python2.6,好吧,喜大普奔,python2.6也只有在yum里面用到,我平常要用的都是python2.7.这种办法,只是在运行yum时,会使用python2.6版本,而我的$PATH不受任何影响

好吧,我是懒人~

完!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息