“没有名为yum的模块” centos7

时间:2018-08-15 08:24:25

标签: python yum

我的操作系统是CentOS Linux版本7.4.1708

首先,我为python安装anaconda。然后替换/ usr / bin / python中的默认python。

$ ll /usr/bin/python*
lrwxrwxrwx. 1 root root  7 Aug 15 03:40 /usr/bin/python -> python2
lrwxrwxrwx. 1 root root  9 Aug  9 22:10 /usr/bin/python3 -> python3.6
lrwxrwxrwx. 1 root root 29 Aug  9 22:10 /usr/bin/python2.7 -> /root/anaconda2/bin/python2.7
lrwxrwxrwx. 1 root root 29 Aug  9 21:59 /usr/bin/python3.6 -> /root/anaconda3/bin/python3.6
lrwxrwxrwx. 1 root root  9 Aug  8 23:49 /usr/bin/python2 -> python2.7


Python 2.7.15 |Anaconda, Inc.| (default, May  1 2018, 23:32:55)
[GCC 7.2.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

所以我不能再使用yum。

$ yum
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.15 |Anaconda, Inc.| (default, May  1 2018, 23:32:55)
[GCC 7.2.0]

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

我尝试将vi /usr/bin/yum的第一行修复为任何其他python路径。 但这不起作用。

另外,我正在尝试像这样重新安装python * .rpm:

rpm -ivh python-tools-2.7.5-68.el7.x86_64.rpm python-2.7.5-68.el7.x86_64.rpm python-libs-2.7.5-68.el7.x86_64.rpm tkinter-2.7.5-68.el7.x86_64.rpm

并重新安装yum*.rpm(今天我下载了很多*.rpm ...) 但是,仍然无法正常工作。 有人帮我吗?谢谢!

3 个答案:

答案 0 :(得分:1)

最近在CentOS7上使用Yum3.4.3,Python2.7.5遇到了这个问题,

[root @ centos64b build]#yum list导入时出现问题 运行yum所需的Python模块之一。错误导致 这个问题是:

没有名为yum的模块

请安装提供此模块的软件包,或验证是否 该模块已正确安装。

上述模块可能与当前版本不匹配 Python,它是: 2.7.5(默认值,2018年4月11日,07:36:10)[GCC 4.8.5 20150623(Red Hat 4.8.5-28)]

如果您自己不能解决此问题,请转到yum常见问题解答 在:http://yum.baseurl.org/wiki/Faq

虽然在遇到此问题之前我没有更新Python。最后,发现在sys.path中未设置python site-packages libpath,因此这里的解决方法是在/ usr / bin / yum Python脚本中将site-packages libpath附加到sys.path。然后,yum可以正常工作。

[build@centos64b ~]$ more /usr/bin/yum
#!/usr/bin/python
import sys
sys.path.append('/usr/lib/python2.7/site-packages')
sys.path.append('/usr/lib64/python2.7/site-packages')

答案 1 :(得分:0)

我在 Superuser StackExchange

上找到了针对该问题的两种解决方案

解决方案1 ​​

  • ln -s /etc/yum.conf /etc/yum/yum.conf

解决方案2

删除新安装的python

  • rm / usr / bin / python

使用正确的版本(x.y)链接python

  • ln -s / usr / bin / python x.y / usr / bin / python

答案 2 :(得分:0)

使用{p>重新安装python

rpm -ivh --force python-2.7.5-68.el7.x86_64.rpm

为什么起作用。通常,rpm可以容忍其他软件包的文件。以您的情况来看,它没有创建链接文件,因此在安装时跳过了它们。来自man rpm 我们可以找到

--force
    Same as using --replacepkgs, --replacefiles, and --oldpackage. 
--replacefiles
    Install the packages even if they replace files from other, already installed, packages. 

使用这些选项rpm并不关心事实,即旧文件是由其他人创建的。

P.S。一些提示:切勿删除/usr/bin中的更改文件。 /bin是链接的最佳选择。最好将bin目录添加到$PATH,方法是将以下内容添加到.bash_profile

$PATH=/root/anaconda2/bin/python2.7:$PATH

因此,如果出现问题,只需从.bash_profile中删除该行即可。 再说一遍:总是进行备份,尤其是在处理系统文件时。