在運行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 rpm
但是執行rpm命令可以成功。在網上查找了一些資料,有的講說是python裝了多個,或者當前Python版本過高。
一、通過命令whereis命令查詢發現系統中只有一個Python,所以Python多個的可能性排除。


二、到同一機房的其他機器上,執行python -V命令發現與當前系統中的Python版本一致,都是2.6.6。因此python版本高的可能性也排除。


三、通過rpm -qa|grep rpm命令查詢rpm軟件的版本號,發現問題機器的rpm軟件包版本號比正常機器的rpm軟件包的版本低。於是就到國內的rpm源上下載正常機器上rpm版本的rpm包,然后拷貝到問題機器,用
rpm -U rpm-4.8.0-47.el6.x86_64.rpm rpm-libs-4.8.0-47.el6.x86_64.rpm rpm-python-4.8.0-47.el6.x86_64.rpm進行安裝。成功安裝之后,再次執行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 pycurl
四、根據第三步思路,檢查pycurl模塊對應的rpm包版本號是否偏低或者偏高,對比后發現版本號一致。而且在python命令行中執行import pycurl命令,同樣提示
No module named pycurl的錯誤。網上查看相關資料好多說缺少pycurl模塊,要通過pip命令安裝,但是正常機器上的pycurl模塊就可以使用而且也沒有pip命令,所以排除pycurl模塊沒有安裝的懷疑。
五、網上查找python模塊的位置在/usr/lib(64)/python(2.6)/site-packages/目錄下,於是自己在正常機器的對應目錄下找到一個名為pycurl.so的文件,但是在問題機器上沒找到相關的文件。然后“放大招“執行命令 find / -name "pycurl.so",發現/usr/lib64/python2.6/site-packages.2016.05.04目錄下有pycurl.so這個文件,將pycurl.so這個文件復制到/usr/lib64/python2.6/site-packages目錄下,再次執行yum命令發現OK了。
總結:1、python的第三方模塊位置在/usr/lib(64)/python(2.6)/site-packages/目錄。第三方模塊可以通過pip命令安裝
sudo yum install python-setuptools -y; sudo easy_install pip 這組命令是安裝pip,安裝成功后可以通過; sudo pip install pyyaml; 來安裝對應的模塊pyyaml。
2、在更新軟件時,一定要注意配置文件、文件夾的重命名問題。