You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 01:40:51