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

7 投票
1 回答
5243 浏览
提问于 2025-04-17 21:02

我想通过编程的方式来运行 pip,并检查当前的虚拟环境是否符合指定的 requirements.txt 文件的要求。我并不在意具体如何运行 pip,但我觉得既然它可以读取类似 requirements.txt 的文件,那就可以作为一个好的起点。

不过,我甚至还没找到一个有效的方法来从命令行运行 pip。有人建议使用 pip install -r requirements.txt --no-install,但这个命令会下载每一个包,即使这不是问题,我也不太确定如何解读它的输出,以判断所有的依赖是否都满足。

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

撰写回答