首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在调试模式下不生成图形输出的Pycallgraph

在调试模式下不生成图形输出的Pycallgraph
EN

Stack Overflow用户
提问于 2014-07-09 14:04:33
回答 1查看 796关注 0票数 2

我正在使用Pycallgraph来生成输出,但是我想保存中间图输出(而不是生成图像),因为我想对它做一些小的修改。

我的竞选身份是:

代码语言:javascript
复制
PYTHONPATH=. pycallgraph -d graphviz -- ./ab_ndh_graph.py > out.graphd

产生了2x的东西:

  1. pycallgraph.png --这是整个调用图(out.graphd中的图形输出)
  2. filter_max_depth.png --这是基于代码的调用图(正确,但没有图形输出)

如何才能为"filter_max_depth“生成图形输出?

文件内容:

代码语言:javascript
复制
config = Config(max_depth=2)
config.trace_filter = GlobbingFilter(exclude=[
    'pycallgraph.*',
])
graphviz = GraphvizOutput(output_file='filter_max_depth.png')

with PyCallGraph(output=graphviz, config=config):
    o = AB_NDH()
    o.run()
EN

回答 1

Stack Overflow用户

发布于 2014-07-19 18:44:33

GraphvizOutput类使用一个临时文件将dot源文件输出到该文件,并在该文件上运行dot命令行工具,然后再清理它。

但是,在运行generate()之后,通过调用PyCallGraph方法,可以很容易地重新生成相同的文件内容。

代码语言:javascript
复制
with open('filter_max_depth.graphd', 'w') as dotfile:
    dotfile.write(graphviz.generate())

您还可以打开config对象的调试选项;在这种情况下,dot源被写入日志。在.debug对象上设置config标志:

代码语言:javascript
复制
config.debug = True

但是,不要在命令行上使用-d

代码语言:javascript
复制
PYTHONPATH=. pycallgraph graphviz -- ./ab_ndh_graph.py > out.graphd

从本质上说,这与添加print graphviz.generate()是一样的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24655863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档