【发布时间】:2016-02-20 22:14:14
【问题描述】:
这应该很简单,所以不知道为什么我在标题中收到错误。创建的 SVG 很好,因为我手动检查过
code to generate svg
....
mod_svg = 'final1.svg'
tree.write(mod_svg)
import cairosvg
fileout = open('finaltree','w')
cairosvg.svg2png(bytestring=mod_svg,write_to=fout)
fileout.close()
我在 pythonanywhere 上使用 python 2.7,以防万一。
完整的回溯
Traceback (most recent call last):
File "/home/drdavepier/mysite/flask_app.py", line 184, in <module>
cairosvg.svg2png(bytestring=mod_svg,write_to=fout)
File "/usr/local/lib/python2.7/dist-packages/cairosvg/__init__.py", line 43, in <lambda>
surface_type.convert(*args, **kwargs))(_surface_type)
File "/usr/local/lib/python2.7/dist-packages/cairosvg/surface/__init__.py", line 82, in convert
tree = Tree(**kwargs)
File "/usr/local/lib/python2.7/dist-packages/cairosvg/parser.py", line 270, in __init__
tree = ElementTree.fromstring(bytestring)
File "lxml.etree.pyx", line 3032, in lxml.etree.fromstring (src/lxml/lxml.etree.c:68121)
File "parser.pxi", line 1786, in lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:102470)
File "parser.pxi", line 1674, in lxml.etree._parseDoc (src/lxml/lxml.etree.c:101299)
File "parser.pxi", line 1074, in lxml.etree._BaseParser._parseDoc (src/lxml/lxml.etree.c:96481)
File "parser.pxi", line 582, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:91290)
File "parser.pxi", line 683, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:92476)
File "parser.pxi", line 622, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:91772)
lxml.etree.XMLSyntaxError: Start tag expected, '<' not found, line 1, column 1
相关 SVG 的开头行
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Created with matplotlib (http://matplotlib.org/) --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="432pt" version="1.1" viewBox="0 0 576 432" width="576pt">
树的初始化:
filename = "/path/to/file.svg"
with open( filename, 'r') as infile:
tree = etree.parse( infile )
【问题讨论】:
-
请发布完整的回溯。
-
我猜你初始化变量树的地方是错误所在。 XML 阅读器可能期待像
这样的东西,而您有其他东西来代替它。 -
谢谢,我添加了更多信息
-
也许在调用前打印出你的字节串,看看第一个字符是什么?
标签: python svg pythonanywhere