以编程方式检查Python依赖是否满足
我想通过编程的方式来运行 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