2016-05-27 6 views
1

Ich möchte die Erstellung und Installation von Python Requirements.txt via Pip in einer virtuellen Umgebung über make optimieren.Wie verwende make, um eine virtuelle Python-Umgebung nur bei Bedarf zu erstellen und zu aktualisieren?

Die Idee ist, dass der Pip-Installationscode nur ausgeführt werden sollte, wenn die requirements.txt-Dateien seit der letzten Ausführung aktualisiert wurden.

Ich weiß, dass make ist wirklich schlau in Bezug auf nicht neu kompilieren Aufgaben, wenn die Quelldateien nicht aktualisiert wurden und in diesem Fall wäre die Quelldatei die requirements.txt Datei.

Wie kann ich dies mit make erhalten?

Antwort

2

So ähnlich?

.env: requirements.txt 
    $(RM) -rf [email protected] 
    virtualenv [email protected] \ 
    && . ./[email protected]/bin/activate \ 
    && pip install -r $< 

Wie von Etan Reisner bemerkte der Zeitstempel des .env Verzeichnis aus anderen Gründen ändern könnte, so dass Sie stattdessen ein Flag-Datei verwenden möchten (danke!):

.env/made: requirements.txt 
    $(RM) -rf $(@D) 
    virtualenv $(@D) \ 
    && . ./$(@D)/bin/activate \ 
    && pip install -r $< 
    touch [email protected] 
+0

@EtanReisner Danke, aktualisiert. Es ist das virtualenv Verzeichnis. – tripleee

+1

Ich würde '$ (@ D) 'anstelle von' $ (dir $ @) '(nicht' dirname' verwenden, das mich * die ganze Zeit auflöst) der Kürze halber (und '.env' und nicht' .env/'zurück) aber ansonsten sieht das genau richtig aus. –

Verwandte Themen