【问题标题】:Utilizing the Dependency-Graph of pip利用 pip 的依赖关系图
【发布时间】:2013-03-06 16:25:59
【问题描述】:

我想为所有使用 pip 安装的 python 包的依赖关系图写一个可视化。我的问题是代码的文档记录很差,我无法找到 Graph 在源代码中的存储位置。

我希望有人对 pip-sourcecode 有足够的了解来帮助我。

我也是 python 新手,我不确定是否应该对现有的源代码进行调整,或者为它编写一个模块,尽管我更倾向于后者。

// 编辑:我可以通过 pip freeze 获取所有已安装的模块,但这给了我一个没有依赖项的列表。所以我必须找到一种方法从该列表中提取依赖项。

【问题讨论】:

    标签: python graph dependencies pip


    【解决方案1】:

    是的,如果您不习惯它,它的代码是非常难以阅读的。我不记得类似的东西,我不会使用它。您可能会发现自己更适合 distlib,它有一个专门用于此目的的模块:https://distlib.readthedocs.org/en/latest/depgraph.html

    【讨论】:

    • 确实有帮助。唯一的问题是 distlib 不能正常工作。 Distutils 2 也与它的文档不同步。
    • 更准确地说,distlib 和 distutils2 看起来都被抛弃了。
    • 不,distlib 根本没有被抛弃。在存储库页面上,您可以看到确实有日常活动。当您说它无法正常工作时,您是什么意思?你能举个例子吗?
    • 您链接的示例无法正常工作。带有 distlib.database 的那个。显然包中没有这样的模块。这对我的目的来说会很好。
    • 嗯,有。我不知道你在做什么,但你可能做错了。这是:bitbucket.org/vinay.sajip/distlib/src/…
    【解决方案2】:

    这是我在搜索过程中发现的:

    Pip 在内部根本不使用依赖图。 (从 1.3.X 版开始)

    因此,一种解决方案是执行以下操作:

    如果您还没有准备好,您可以安装 setuptools。它带来了一个名为 pkg_resources 的模块。 该模块具有所有工具,可以在您想要的 dists 目录中查看所有已安装的模块(不仅是使用 pip 安装的模块)。然后,您可以使用 pkg_resources 中包含的方法读出元数据(包括需求/依赖项)。

    【讨论】:

      猜你喜欢
      • 2019-06-16
      • 2014-02-15
      • 2017-09-23
      • 2015-12-28
      • 2012-03-03
      • 2019-03-31
      • 2022-11-09
      • 1970-01-01
      相关资源
      最近更新 更多