给定requirements.txt和virtualenv环境,从脚本检查是否满足要求并在不匹配的情况下提供详细信息的最佳方法是什么?

Pip在主要版本中更改了它的内部API,所以我看到一些建议不要使用它的parse_requirements方法。

有一种pkg_resources.require(dependencies)的方法,但是接下来如何解析需求文件,如github链接等呢?

这应该很简单,但是找不到任何指针。

更新:需要编程解决方案。

最佳答案

您可以使用pip freeze将virtualenv当前安装的软件包保存到一个文件中,例如current.txt。

pip freeze > current.txt

然后,您可以使用this之类的脚本将此内容与difflib与requirements.txt进行比较:
import difflib

req = open('requirements.txt')
current = open('current.txt')

diff = difflib.ndiff(req.readlines(), current.readlines())
delta = ''.join([x for x in diff if x.startswith('-')])

print(delta)

这应该仅显示“requirements.txt”中的软件包,而不是“current.txt”中的软件包。

关于python - 如何比较需求文件和实际安装的Python模块?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39046603/

10-16 22:15