Centos Yum error – ImportError: No module named cElementTree
来源:互联网 发布:中国社交网络发展历程 编辑:程序博客网 时间:2024/05/22 17:44
centos 下执行yum 会报以下错误
# yum install openssh-clients
Loaded plugins: fastestmirror, securityLoading mirror speeds from cached hostfile
* base: mirrors.tuna.tsinghua.edu.cn
* extras: mirrors.btte.net
* updates: mirrors.tuna.tsinghua.edu.cn
Traceback (most recent call last):
File "/usr/bin/yum", line 29, in <module>
yummain.user_main(sys.argv[1:], exit_code=True)
File "/usr/share/yum-cli/yummain.py", line 285, in user_main
errcode = main(args)
File "/usr/share/yum-cli/yummain.py", line 136, in main
result, resultmsgs = base.doCommands()
File "/usr/share/yum-cli/cli.py", line 434, in doCommands
self._getTs(needTsRemove)
File "/usr/lib/python2.6/site-packages/yum/depsolve.py", line 99, in _getTs
self._getTsInfo(remove_only)
File "/usr/lib/python2.6/site-packages/yum/depsolve.py", line 110, in _getTsInfo
pkgSack = self.pkgSack
File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 887, in <lambda>
pkgSack = property(fget=lambda self: self._getSacks(),
File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 669, in _getSacks
self.repos.populateSack(which=repos)
File "/usr/lib/python2.6/site-packages/yum/repos.py", line 308, in populateSack
sack.populate(repo, mdtype, callback, cacheonly)
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 165, in populate
if self._check_db_version(repo, mydbtype):
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 223, in _check_db_version
return repo._check_db_version(mdtype)
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 1256, in _check_db_version
repoXML = self.repoXML
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 1455, in <lambda>
repoXML = property(fget=lambda self: self._getRepoXML(),
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 1447, in _getRepoXML
self._loadRepoXML(text=self)
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 1437, in _loadRepoXML
return self._groupLoadRepoXML(text, self._mdpolicy2mdtypes())
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 1412, in _groupLoadRepoXML
if self._commonLoadRepoXML(text):
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 1225, in _commonLoadRepoXML
if self._latestRepoXML(local):
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 1194, in _latestRepoXML
oxml = self._saveOldRepoXML(local)
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 1053, in _saveOldRepoXML
xml = self._parseRepoXML(old_local, True)
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 1036, in _parseRepoXML
return repoMDObject.RepoMD(self.id, local)
File "/usr/lib/python2.6/site-packages/yum/repoMDObject.py", line 124, in __init__
self.parse(srcfile)
File "/usr/lib/python2.6/site-packages/yum/repoMDObject.py", line 140, in parse
parser = iterparse(infile)
File "/usr/lib/python2.6/site-packages/yum/misc.py", line 1141, in cElementTree_iterparse
_cElementTree_import()
File "/usr/lib/python2.6/site-packages/yum/misc.py", line 1136, in _cElementTree_import
import cElementTree
ImportError: No module named cElementTree
系统是从官网上下载的centos 6.4 开始yum是可以用的,安装了服务器编译用到的动态库之后,发现yum的时候会报这个错误。
之前一直网上寻找答案,一直都找不到答案。问一个运维的同事,
在 python 下 执行 from xml.etree import cElementTree 当时是没有报错的。
就把 /etc/ld.so.conf 里自己添加的 /usr/local/lib 注释掉,再执行 /sbin/ldconfig。yum就可以使用了,又把/usr/local/lib 加上。
后来一直没用,等到再用yum的时候。发现yum又报这个错误了。 这次 from xml.etree import cElementTree 会报错
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.6/xml/etree/cElementTree.py", line 3, in <module>
from _elementtree import *
ImportError: /usr/lib64/python2.6/lib-dynload/pyexpat.so: symbol XML_SetHashSalt, version EXPAT_2_0_1_RH not defined in file libexpat.so.1 with link time reference
再次去掉 /etc/ld.so.conf 里自己添加的/usr/local/lib 就不好用了。
后来找到了解决方案
from xml.etree import cElementTree 执行报错可以看出 跟 libexpat.so.1 有关
执行 strace -o /root/yum.txt yum 找到libexpat.so.1路径,显示如下
# strace -o /root/yum.txt yum list
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
* base: mirrors.tuna.tsinghua.edu.cn
* extras: mirrors.btte.net
* updates: mirrors.tuna.tsinghua.edu.cn
Traceback (most recent call last):
File "/usr/bin/yum", line 29, in <module>
yummain.user_main(sys.argv[1:], exit_code=True)
File "/usr/share/yum-cli/yummain.py", line 285, in user_main
errcode = main(args)
File "/usr/share/yum-cli/yummain.py", line 136, in main
result, resultmsgs = base.doCommands()
File "/usr/share/yum-cli/cli.py", line 434, in doCommands
self._getTs(needTsRemove)
File "/usr/lib/python2.6/site-packages/yum/depsolve.py", line 99, in _getTs
self._getTsInfo(remove_only)
File "/usr/lib/python2.6/site-packages/yum/depsolve.py", line 110, in _getTsInfo
pkgSack = self.pkgSack
File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 887, in <lambda>
pkgSack = property(fget=lambda self: self._getSacks(),
File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 669, in _getSacks
self.repos.populateSack(which=repos)
File "/usr/lib/python2.6/site-packages/yum/repos.py", line 308, in populateSack
sack.populate(repo, mdtype, callback, cacheonly)
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 165, in populate
if self._check_db_version(repo, mydbtype):
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 223, in _check_db_version
return repo._check_db_version(mdtype)
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 1256, in _check_db_version
repoXML = self.repoXML
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 1455, in <lambda>
repoXML = property(fget=lambda self: self._getRepoXML(),
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 1447, in _getRepoXML
self._loadRepoXML(text=self)
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 1437, in _loadRepoXML
return self._groupLoadRepoXML(text, self._mdpolicy2mdtypes())
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 1412, in _groupLoadRepoXML
if self._commonLoadRepoXML(text):
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 1225, in _commonLoadRepoXML
if self._latestRepoXML(local):
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 1194, in _latestRepoXML
oxml = self._saveOldRepoXML(local)
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 1053, in _saveOldRepoXML
xml = self._parseRepoXML(old_local, True)
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 1036, in _parseRepoXML
return repoMDObject.RepoMD(self.id, local)
File "/usr/lib/python2.6/site-packages/yum/repoMDObject.py", line 124, in __init__
self.parse(srcfile)
File "/usr/lib/python2.6/site-packages/yum/repoMDObject.py", line 140, in parse
parser = iterparse(infile)
File "/usr/lib/python2.6/site-packages/yum/misc.py", line 1141, in cElementTree_iterparse
_cElementTree_import()
File "/usr/lib/python2.6/site-packages/yum/misc.py", line 1136, in _cElementTree_import
import cElementTree
ImportError: No module named cElementTree
这个命令会再root下把yum用到的库路径写到yum.txt里,之后查看yum.txt
# grep libexpat.so.1 /root/yum.txt
open("/usr/local/lib/libexpat.so.1", O_RDONLY) = 8
我把/usr/local/lib 下 所有的libexpat都移动到其他地方,yum就可以正常使用了。后来又实验了一下
原来是有这些库的
libexpat.a libexpat.la libexpat.so libexpat.so.0 libexpat.so.0.5.0 libexpat.so.1 libexpat.so.1.5.2
最后剩下
libexpat.a libexpat.la libexpat.so.0 libexpat.so.0.5.0 yum就可以正常使用了
其实全部删除/usr/local/lib 下expat库也是没问题的。应该是expat的库和yum不兼容造成的。
- Centos Yum error – ImportError: No module named cElementTree
- Yum error – ImportError: No module named cElementTree
- yum错误ImportError: No module named cElementTree的处理
- centos下ImportError: No module named sasl
- py2exe error: "ImportError: No module named httplib"
- 【Error】ImportError No module named Leap
- CentOS yum No module named yum
- ImportError: No module named ...
- ImportError: No module named ***
- ImportError:No module named
- ImportError: No module named
- ImportError: No module named ×××××
- yum 出现错误ImportError: No module named urlgrabber.grabber
- centos import cx_oracle ImportError: No module named cx_Oracle 解决方法
- 解决centos中"ImportError: No module named _tkinter"问题
- The error in python :ImportError: No module named xxx
- Pycharm throws error :ImportError: No module named sklearn
- Python Error : ImportError: No module named 'xml.etree'
- java运算符优先级
- 基本运算符重载实例
- 使用kubeadm将Kubernetes集群从1.6版本升级到1.7
- 爬虫maizi
- log4j有针对性的将日志输出到不同文件且不重复输出到root中
- Centos Yum error – ImportError: No module named cElementTree
- Spring框架中的各种*Aware接口
- PostMessage和SendMessage
- 前端JS如何获取主域名(根域名)
- JavaScript中的call和apply用法
- jboss规则引擎KIE Drools 6.3.0-高级讲授篇
- 爬虫mm
- 改变、透明状态栏和导航栏颜色 (沉浸式状态栏)
- JavaScript 面向对象(一)认识对象