2014-10-10 37 views
-1

我从系统的Python 2.6.4中删除了numpy和scipy内容,以便为它们安装不同的版本,现在我打破了YUM。我得到的错误是:Fedora:使用YUM时没有名为RPM的模块

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

    No module named rpm 

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.6.4 (r264:75706, Jun 4 2010, 18:20:31) 
    [GCC 4.4.4 20100503 (Red Hat 4.4.4-2)] 

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

而且当我从Python控制台我得到以下错误内导入YUM:

Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 23, in <module> 

import rpm ImportError: 

No module named rpm 

Python的状态很好,我设法安装numpy的,但是我想用YUM安装scipy,我不能。当我运行时:

rpm --version 

我得到:RPM版本4.8.1。

有没有办法解决这个问题?我会很感激任何意见或指示解决这个问题。

+0

不知道如何解决你的问题,但是一旦你把它整理出来,你应该使用[virtualenv](http://virtualenv.readthedocs.org/en/latest/)并且保留你的基本Python安装。 Virtualenv可以轻松创建独立的Python环境及其管理,并且可以在不干扰主要安装的情况下玩耍。 – mhawke 2014-10-10 13:52:12

回答

3

看起来你没有安装​​。如果yum先前正在运行,那么很难看出rpm模块是如何安装的。看看/usr/lib/python2.6/site-packages/rpm - 该目录应该存在,并且应该包含几个python文件(__init__.pytransaction.py)以及一个用于rpm的共享库。

如果/usr/lib/python2.6/site-packages/rpm目录或文件丢失,那么您可以尝试安装它。首先使用rpm -q rpm-python检查它是否在RPM数据库中。如果没有安装,那么你可以从this mirror之类的地方获得rpm并安装它(rpm -ivh http://mirror.as24220.net/pub/fedora/linux/releases/20/Fedora/i386/os/Packages/r/rpm-python-4.11.1-7.fc20.i686.rpm)。您将需要为您的Fedora和机器体系结构找到正确的版本。

更可能是(显然)安装,在这种情况下,你可以尝试强制重新安装。只要确定您可以访问相同版本的正确rpm,就可以下载它。如果您有信心,请使用rpm -ivh --force rpm_file进行安装。

然后运行python并查看是否可以导入rpm并导入yum。

+0

谢谢你mhawke这解决了我最初的问题。导入yum后,我得到了一个关于pycurl的新错误,我能够按照您提到的相同过程(即查找已安装的rpm并重新安装它)来解决它。然后导入yum导致关于yum-metadata-parser的另一个错误,我通过重新安装已经存在的rpm终于使我再次使用yum来解决了。 – SC21 2014-10-13 07:37:48