以编程方式检查Python依赖项是否已满足

7
我想以编程方式运行pip,并确定当前的虚拟环境是否符合指定的requirements.txt文件。我不关心运行pip或任何其他操作,但是我认为由于它可以读取类似于requirements.txt的文件,所以这将是一个好的开始。
但是,我甚至没有找到有效地从命令行运行pip的方法。在某个地方建议使用"pip install -r requirements.txt --no-install",但它会下载每个包,并且即使这不是问题,我也不确定如何解释其输出来判断所有依赖项是否满足。

请查看相关的线程:https://dev59.com/bGQo5IYBdhLWcg3wI8fx - alecxe
谢谢。我没有看到这个帖子。只有pkg_resources这个响应似乎有用,但我怀疑它是否能够与requirements.txt中作为依赖项的github存储库一起使用。如果这是唯一的选择,我可能需要采取这种方法... - orange
1
可能是重复的问题,参考如何检查Python是否安装了所有必需的包? - Asclepius
1个回答

2

这篇文章提供了获取模块列表的很多好建议。您可以使用以下代码打印出所有缺失的模块:

from pkgutil import iter_modules
modules = set(x[1] for x in iter_modules())

with open('requirements.txt', 'rb') as f:
    for line in f:
        requirement = line.rstrip()
        if not requirement in modules:
            print requirement

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接