在Python中创建依赖图

问题描述 投票:29回答:2

我继承了一个巨大的代码库,需要对其进行一些小的更改。我想知道是否有实用程序可以解析python代码并提供函数之间的依赖关系,就像我对函数进行更改一样,我想确保自己不会破坏其他函数,所以如果我能在类似该图的图中看到它会让我的生活更轻松。

python dependency-management call-flow
2个回答
24
投票
  • 通常为模块/包导入定义“依赖关系”。
  • 您正在寻找的是可视化的呼叫流程。

  • 您仍然不能保证不会破坏功能:)

  • 我的经验和解决方案:

    很多次,我发现呼叫流数据不堪重负,并且图表过于复杂。因此,我通常要做的是对该功能进行部分跟踪跟踪,我对此很感兴趣。

    这是通过利用sys.settrace(...)函数完成的。在将调用流生成为文本数据之后,我使用graphviz生成了一个调用图。

[[编辑:基于评论]

然后我的零散解决方案效果更好。只需插入代码,然后在要跟踪的函数上使用装饰器即可。您会看到延迟出现的差距,但是可以解决。您不会直接获得完整的图片。

我一直在努力做到这一点,并做出了一个基于这种理解的few post


0
投票

也许您可以尝试依赖性诊断网站http://www.watchman-pypi.com/dependency_analysis,该网站可以帮助诊断依赖性冲突问题并自动显示完整的依赖性树和下游项目的依赖性树。

最好,Neolith

© www.soinside.com 2019 - 2024. All rights reserved.