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

Python diagrams库生成代码式架构图时自定义图标不显示

问题原因

自定义GitLab图标不显示的核心问题是相对路径解析规则不匹配:
diagrams本身不直接渲染图片,它会先生成Graphviz格式的dot描述文件,再调用Graphviz工具完成最终绘图。这时候Graphviz解析图片相对路径的基准,是dot文件和最终生成图片的存放目录,不是你运行Python命令时终端所在的工作目录。
你配置里把生成的架构图存在diagrams/目录下(对应filename="diagrams/my_diagram_rec"参数),但传给Custom的图标路径写的是./diagrams/resources/gitlablogo.png,Graphviz从diagrams/目录出发找这个路径,实际会定位到根本不存在的diagrams/diagrams/resources/gitlablogo.png,自然加载不出图标。
另外你代码最后一行定义的边没有写连接的目标节点,这根线渲染的时候也不会正常显示,记得补上对应节点。

解决方法

两种方案选一个即可:

  • 方案1:直接修改相对路径
    把图标路径改成相对于图片输出目录(也就是diagrams/文件夹)的相对路径即可,修改后代码:
    gitlab_repo = Custom("Git Repo", "./resources/gitlablogo.png")
    
  • 方案2:使用绝对路径(推荐,无路径兼容问题)
    用Python内置的pathlib模块,基于当前脚本文件的位置动态拼接图标的绝对路径,不管你在哪个目录下执行脚本都不会出现文件找不到的问题,示例代码:
    from pathlib import Path
    # 获取当前脚本所在文件夹的绝对路径
    script_dir = Path(__file__).parent.resolve()
    gitlab_icon_path = script_dir / "resources" / "gitlablogo.png"
    
    gitlab_repo = Custom("Git Repo", str(gitlab_icon_path))
    

内容的提问来源于stack exchange,提问作者Max Power

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 17:33:45