如果您有第三方模块想要使用ElementTree(和XMLTreeBuilder by dependency),那么可以将ElementTree的XMLTreeBuilder定义更改为SimpleXMLTreeBuilder提供的定义,如下所示:
from xml.etree import ElementTree # part of python distribution
from elementtree import SimpleXMLTreeBuilder # part of your codebase
ElementTree.XMLTreeBuilder = SimpleXMLTreeBuilder.TreeBuilder
我们在CentOS 5.5上使用python version 2.6.4遇到了同样的问题。
当expat类试图加载pyexpat模块时,就会出现这个问题,请参见/usr/lib64/python2.6/xml/parsers/expat.py
在/usr/lib64/python2.6/lib-dynload/中,我没有看到“pyexpat.so”共享对象。不过,我确实在另一台机器上看到了它,它没有问题。
我比较了python版本(yum list'python*’)并确定正常运行的机器有python 2.6.5。运行“yum update python26”为我修复了该问题。
如果这对您不起作用,并且您需要一个slapstick解决方案,那么您可以将SO文件复制到动态加载路径中。
假设您现在正在使用
elementtree.XMLTreeBuilder
,请改为尝试以下操作:它试图提供完全相同的功能,但使用xmllib而不是expat。如果同样失败,顺便说一句,试试:
为了尝试使用另一个实现,这个实现基于sgmlop。
如果您有第三方模块想要使用ElementTree(和XMLTreeBuilder by dependency),那么可以将ElementTree的XMLTreeBuilder定义更改为SimpleXMLTreeBuilder提供的定义,如下所示:
现在ElementTree每次调用时都将使用SimpleXMLTreeBuilder。
另请参见:http://groups.google.com/group/google-appengine/browse_thread/thread/b7399a91c9525c97
相关问题 更多 >
编程相关推荐