2014-10-10 81 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