python 模块加载错误总结

在运行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 模块加载错误总结python 模块加载错误总结
    
     二、到同一机房的其他机器上,执行python -V命令发现与当前系统中的Python版本一致,都是2.6.6。因此python版本高的可能性也排除。python 模块加载错误总结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、在更新软件时,一定要注意配置文件、文件夹的重命名问题。
上一篇:Java集合必会14问(精选面试题整理)


下一篇:Api管家系列(一):初探