以编程方式生成requirements.txt文件

时间:2014-06-20 07:18:31

标签: python subprocess pip requirements.txt

我正在尝试以编程方式生成requirements.txt文件。这样我可以将它与第二个.txt文件区分开来。到目前为止,我已经尝试了以下内容,但它们只向控制台输出了要求(生成了No .txt文件)。

到目前为止,我已经尝试了

    import pip

    pip.main(["freeze",">","requirements.txt"])

    from subprocess import call

    call(["pip","freeze", ">","requirements.txt"])

如果我尝试在终端中手动运行相同的命令,则生成的文件没有问题。有什么建议吗?

2 个答案:

答案 0 :(得分:7)

要求pip直接提供分发列表

脚本myfreeze.py

import pip
with open("requirements.txt", "w") as f:
    for dist in pip.get_installed_distributions():
        req = dist.as_requirement()
        f.write(str(req) + "\n")

然后,您会在requirements.txt文件中获得预期的内容。

答案 1 :(得分:3)

subprocess.Popen(['pip', 'freeze'], stdout=open('/tmp/pip.log', 'w'))