在Python中创建依赖图

34 投票
1 回答
18110 浏览
提问于 2025-04-16 06:56

我接手了一个很大的代码库,现在需要在里面做一些小改动。我在想有没有工具可以分析Python代码,帮我找出函数之间的依赖关系。比如说,如果我改了一个函数,我想确保不会影响到其他函数。如果能看到一个图形化的示意图,那就太好了,这样会让我工作轻松很多。

1 个回答

35
  • 通常“依赖”是指模块或包的导入。
  • 你想要的是一种可视化的调用流程。

  • 不过,你仍然不能保证不会破坏功能哦 :)

  • 我的经验和解决方案:

    很多时候,我发现调用流程的数据太多,图表也太复杂了。所以我通常只追踪我感兴趣的函数的部分调用流程。

    这可以通过使用 sys.settrace(...) 函数来实现。生成文本数据的调用流程后,我会使用 graphviz 来生成调用图。

[编辑:根据评论]

所以我的分步解决方案效果更好。只需插入代码,并在你想追踪的函数上使用装饰器。你会看到一些空白的地方,这些是延迟执行的部分,但这些是可以解决的。你不会直接看到完整的图景。

我一直在尝试这样做,并且写了一些 相关的帖子 来分享我的理解。

撰写回答