2014-03-06 16 views
5

ich programmatisch pip möchte laufen und bestimmen, ob die aktuelle virtualenv Umgebung mit einer bestimmten requirements.txt Datei entspricht. Ich bin nicht nervös über das Laufen pip oder irgendetwas, aber ich dachte, da es requirements.txt ähnliche Dateien lesen kann, wäre es ein guter Anfang.programmatisch überprüfen, ob Python Abhängigkeiten erfüllt sind

Allerdings habe ich nicht einmal eine Möglichkeit gefunden, pip von der Befehlszeile effektiv auszuführen. wurde irgendwo vorgeschlagen, aber es lädt jedes Paket herunter und selbst wenn dies kein Problem war, bin ich mir nicht sicher, wie ich seine Ausgabe interpretieren soll, ob alle Abhängigkeiten erfüllt sind oder nicht.

+0

dieses relevante Thema Siehe: http://stackoverflow.com/questions/16294819/how-to-check-if-my-python-has- All-Required-Pakete – alecxe

+0

Danke. Ich habe diesen Thread nicht gesehen. Nur die Antwort 'pkg_resources' scheint nützlich zu sein, aber ich bezweifle, dass sie mit' github' Repositories als Abhängigkeit in 'requirements.txt' funktionieren wird. Ich muss vielleicht auf diesen Ansatz zurückgreifen, wenn das die einzige Option ist ... – orange

+0

Mögliches Duplikat von [Wie überprüfe ich, ob mein Python alle benötigten Pakete hat?] (Https://stackoverflow.com/questions/16294819/how- to-check-wenn-mein-Python-hat-alle-benötigt-Pakete –

Antwort

0

This Post hat viele gute Vorschläge für eine Liste von Modulen. Sie können den Code unten verwenden, um alle fehlenden Module auszudrucken:

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 
Verwandte Themen