Python包依赖树

MRo*_*lin 21 python dependency-management pypi

我想分析Python包的依赖树.我如何获得这些数据?

我已经知道的事情

  1. setup.py有时包含一个requires列出包依赖关系的字段
  2. PyPi是Python包的在线存储库
  3. PyPi有一个API

我不知道的事情

  1. PyPi上很少有项目(大约10%)明确列出了requires字段中的依赖项,但pip/easy_install仍设法下载正确的软件包.我错过了什么?例如,对于统计计算的通俗图书馆,pandas,没有列出requires,但仍设法安装numpy,pytz等....有没有一种更好的方式来自动收集依赖性的完整列表?
  2. 某个地方是否有预先存在的数据库?我是否重复现有的工作?
  3. 是否有类似的,易于访问的数据库存在其他语言的分发系统(R,Clojure等...?)

Mar*_*ers 18

你应该寻找在install_requires外地,而不是,看新增和更改的setup关键字.

requires被认为是依赖于依赖安装的字段太模糊.此外,还有运行测试所需的依赖项setup_requirestest_requires字段setup.py.

当然,之前已经分析了依赖图; 来自Olivier Girardot的这篇博客文章带来了这个梦幻般的形象:

PyPI依赖项
图像链接到图形的交互式版本.

  • 好吧,它*是一个非常漂亮的图表! (4认同)
  • 尽管图表很漂亮,但我不明白如何阅读。 (3认同)
  • 那个图太不可思议了。 (2认同)