CairoSVG svg2png抛出无关XML解析错误,求解决方案
CairoSVG报错:xml.parsers.expat.ExpatError: not well-formed (invalid token)
昨晚使用CairoSVG测试SVG转PNG功能完全正常,今早运行相同代码却抛出未查到相关信息的错误。夜间未执行任何更新操作,已尝试通过brew重新安装cairo及相关包、升级Python3,但均无效,错误仍存在。
代码示例
import cairosvg cairosvg.svg2png(url='layout.svg', write_to='image.png', output_height=200)
报错信息
Traceback (most recent call last): File "/usr/local/Cellar/python@3.10/3.10.8/Frameworks/Python.framework/Versions/3.10/lib/python3.10/xml/etree/ElementTree.py", line 1713, in feed self.parser.Parse(data, False) xml.parsers.expat.ExpatError: not well-formed (invalid token): line 1, column 0
排查建议
- 检查
layout.svg文件完整性:用文本编辑器直接打开该文件,确认内容是合法的XML格式,开头为<svg>标签,无乱码、空内容或非XML字符。 - 确认文件路径:尝试使用
layout.svg的绝对路径传入url参数,避免相对路径解析异常。 - 测试极简SVG:创建一个基础SVG文件(如下),用相同代码转换,验证是否是原SVG文件的问题:
<svg width="100" height="100"> <rect width="100" height="100" fill="red" /> </svg> - 检查权限:确保当前用户对
layout.svg有读取权限,对输出目录有写入权限。 - 回退CairoSVG版本:执行
pip show cairosvg查看当前版本,尝试安装之前正常工作的版本,比如pip install cairosvg==2.5.2(替换为你之前使用的版本号)。
内容的提问来源于stack exchange,提问作者icelandnode
相关产品推荐
相关产品推荐

