python lxml与py2exe
问题描述:
我已经用dom生成了一个XML,我想用lxml来打印xml。python lxml与py2exe
这是我的代码打印这个XML
def prettify_xml(xml_str):
import lxml.etree as etree
root = etree.fromstring(xml_str)
xml_str = etree.tostring(root, pretty_print=True)
return xml_str
我的输出应该是一个XML格式的字符串。
我从stctoverflow的某篇文章中得到了这段代码。当我编译智慧python本身时,这工作完美无瑕。但是,当我在我的项目转换为从py2exe创建一个二进制文件(我的二进制是一个namedpipe窗口服务)。我有两个问题:
我的服务没有启动,我在
includes
选项添加lxml.etree
解决了这个在py2exe函数中。然后在我的服务开始正常。XML生成在这里叫的时候,是我在我的日志
'module' object has no attribute 'fromstring'
我在哪里可以纠正这个错误我看到的错误?我的第一个问题的解决方案是否正确?
我的XML生成代码:
from xml.etree import ElementTree
from xml.dom import minidom
from xml.etree.ElementTree import Element, SubElement, tostring, XML
import lxml.etree
def prettify_xml(xml_str):
root = lxml.etree.fromstring(xml_str)
xml_str = lxml.etree.tostring(root, pretty_print=True)
return xml_str
def dll_xml(status):
try:
xml_declaration = '<?xml version="1.0" standalone="no" ?>'
rootTagName='response'
root = Element(rootTagName)
root.set('id' , 'rp001')
parent = SubElement(root, 'command', opcode ='-ac')
# Create children
chdtag1Name = 'mode'
chdtag1Value = 'repreport'
chdtag2Name='status'
chdtag2Value = status
fullchildtag1 = ''+chdtag1Name+' value = "'+chdtag1Value+'"'
fullchildtag2=''+chdtag2Name+' value="'+chdtag2Value+'"'
children = XML('''<root><'''+fullchildtag1+''' /><'''+fullchildtag2+'''/></root> ''')
# Add parent
parent.extend(children)
dll_xml_doc = xml_declaration + tostring(root)
dll_xml_doc = prettify_xml(dll_xml_doc)
return dll_xml_doc
except Exception , error:
log.error("xml_generation_failed : %s" % error)
如果您将导入移动到方法定义之外,是否仍然发生?你确定py2exe使用的是你正在测试的python版本吗? – 2013-02-22 09:38:48
我试着把功能外的导入。我的服务现在没有开始。我不妨将我的代码放在 – rakesh 2013-02-22 09:49:28
@ michael-clerx之上,我查阅了我的python版本和py2exe版本,它们都是相同的类型。 – rakesh 2013-02-22 10:39:54