如何在PyCallGraph上下文管理器中排除pycallgraph2自身?
在脚本内排除PyCallGraph2自身调用的实现方法
PyCallGraph2支持通过内置的GlobbingFilter在脚本内部配置调用过滤规则,无需依赖命令行参数即可排除自身的调用记录。
修改后的最小可运行示例代码如下:
from pycallgraph2 import PyCallGraph from pycallgraph2.output import GraphvizOutput from pycallgraph2.globbing_filter import GlobbingFilter with PyCallGraph( output=GraphvizOutput(), filters=[GlobbingFilter(exclude=['pycallgraph2.*'])] ): # 这里替换成你要分析的业务代码 print("Hello, World")
关键说明
- 导入
GlobbingFilter类:该类用于定义模块命名空间的包含/排除规则,支持通配符*实现批量匹配。 - 配置
filters参数:在初始化PyCallGraph时传入filters列表,通过GlobbingFilter(exclude=['pycallgraph2.*'])指定排除所有以pycallgraph2.开头的模块调用。 - 扩展过滤规则:如果需要排除其他第三方模块,只需在
exclude列表中追加对应规则,比如exclude=['pycallgraph2.*', 'os.*']。
调整后生成的调用图将仅展示业务代码的调用链路,不会包含PyCallGraph2自身的内部调用。
内容的提问来源于stack exchange,提问作者Galen
相关产品推荐
相关产品推荐

