4

我关注这个文档:https ://mg.pov.lt/objgraph/

objgraph_test.py

import objgraph
import os

x = ['a', '1', [2, 3]]
filename = os.path.dirname(__file__) + '/objgraph_test.png'
objgraph.show_refs([x], filename=filename)

当我尝试输出.png图像文件时,它会引发错误:

(venv) ☁  python-codelab [master] ⚡  python3 /Users/ldu020/workspace/github.com/mrdulin/python-codelab/src/performance-optimization/memory-profile-and-objgraph/objgraph_test.py
Graph written to /var/folders/38/s8g_rsm13yxd26nwyqzdp2shd351xb/T/objgraph-4hy982i9.dot (6 nodes)
Image renderer (dot) not found, not doing anything else

我已经安装了xdot包。

(venv) ☁  python-codelab [master] ⚡  pip3 list | grep -e 'xdot\|objgraph'
objgraph           3.4.1     
xdot               1.1  

我该如何解决这个问题?

4

1 回答 1

3

我使用 python3 遇到了同样的问题。这三个步骤对我有用:

  1. 安装 Graphviz 包(其中包含脚本找不到的 dot.exe 文件以从 .dot 生成 .png) - 通过 pip install 或直接从https://graphviz.gitlab.io/下载

  2. 将 dot.exe 添加到路径- 您只需在命令行中键入 dot 即可运行 dot.exe。为此,您必须将 dot.exe 的整个路径添加到环境变量中。

  3. 重新运行命令行或 IDE 并再次运行脚本- 这次您将能够生成 png 图像。

希望能帮助到你!

于 2020-03-12T15:23:53.747 回答