2017-02-05 3 views
1

Ich möchte alle pip Befehle, die in einer bestimmten virtuellen Umgebung ausgeführt wurden, und die Paketversionen, die installiert/aktualisiert/entfernt wurden, aufzeichnen. Gibt es einen einfachen Weg, das zu tun?Protokollieren Sie alle Pip-Befehle in einer bestimmten virtuellen Umgebung?

Alternativ, wie bekomme ich requirements.txt (einschließlich --install-option, etc.) aus meiner virtuellen Umgebung Zustand, wenn das möglich ist? Vermutlich müssen nur die unmittelbaren Abhängigkeiten vorhanden sein.

+0

'pip installieren foo bar baz> & pip_log.txt' protokolliert die Ausgabe, wenn Sie auf einem POSIX-System sind. – Greg

+0

'pip' mit einer Anforderungsdatei ist ein gewünschtes Zustandssystem. Dies macht die Änderungen irrelevant. Sie sollten in Erwägung ziehen, nur eine Anforderungsdatei zu verwenden (keine manuellen Änderungen) und einen Verlauf zu speichern. –

Antwort

1

Bearbeiten Sie das Skript pip dies der __main__ Segment am Anfang einfügen:

if __name__ == '__main__': 
    import os 
    env_dir = os.environ['VIRTUAL_ENV'] 
    with open(os.path.join(env_dir, 'pip_log.txt'), 'a') as f: 
     f.write(' '.join(sys.argv[1:]) + '\n') 

Dies wird jeder Anruf melden Sie sich bei pip_log.txt im virtualenv Verzeichnis pip. Pip befindet sich im bin-Ordner im virtualenv neben dem Aktivierungsskript.

0

Sie können den Befehl history verwenden, um den Verlauf aller Ihrer Befehle anzuzeigen, und dann grep für pip ohne out in eine Datei. Ähnlich wie der Kommentar oben.

Verwandte Themen