2014-06-20 11 views
5

Sto provando a generare un file requirements.txt in modo programmatico. In questo modo posso diff contro un secondo file .txt. Finora ho provato quanto segue, ma hanno solo emesso i requisiti per la console (non viene generato alcun file .txt).Genera automaticamente il file requirements.txt

Finora ho provato

import pip 

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

e

from subprocess import call 

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

Se si tenta di eseguire lo stesso comando manualmente nel terminale, però, il file viene generato senza alcun problema. Eventuali suggerimenti?

risposta

6

Chiedi pip di fornire direttamente l'elenco delle distribuzioni

Script 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") 

poi si arriva contenuto previsto nel file requirements.txt.

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