我想写一个用 pip 安装的所有 python 包的依赖关系图的可视化。我的问题是代码的文档记录很差,我无法找到 Graph 在源代码中的存储位置。
我希望有人对 pip-sourcecode 有足够的了解来帮助我。
我也是 python 新手,我不确定我是否应该在现有的源代码中进行调整,或者为它编写一个模块,尽管我更倾向于后者。
// 编辑:我可以通过 pip freeze 获取所有已安装的模块,但这只会给我一个没有依赖项的列表。所以我必须找到一种方法从该列表中提取依赖项。
我想写一个用 pip 安装的所有 python 包的依赖关系图的可视化。我的问题是代码的文档记录很差,我无法找到 Graph 在源代码中的存储位置。
我希望有人对 pip-sourcecode 有足够的了解来帮助我。
我也是 python 新手,我不确定我是否应该在现有的源代码中进行调整,或者为它编写一个模块,尽管我更倾向于后者。
// 编辑:我可以通过 pip freeze 获取所有已安装的模块,但这只会给我一个没有依赖项的列表。所以我必须找到一种方法从该列表中提取依赖项。
是的,如果您不习惯它,它的代码是非常难以阅读的。我不记得类似的东西,我不会使用它。您可能会发现自己更适合distlib
,它有一个专门用于此目的的模块:https ://distlib.readthedocs.org/en/latest/depgraph.html
这是我在搜索过程中发现的:
Pip 在内部根本不使用依赖图。(从 1.3.X 版开始)
因此,一种解决方案是执行以下操作:
如果您还没有准备好,您可以安装 setuptools。它带来了一个名为 pkg_resources 的模块。该模块具有所有工具,可以在您想要的 dists 目录中查看所有已安装的模块(不仅是使用 pip 安装的模块)。然后,您可以使用 pkg_resources 中包含的方法读出元数据(包括需求/依赖项)。