Prüfen Sie, ob meine Python hat alle benötigten Pakete
Ich habe eine requirements.txt
- Datei mit einer Liste von Paketen, die benötigt werden für meine virtuelle Umgebung. Ist es möglich, herauszufinden, ob alle erwähnten Pakete in der Datei vorhanden sind. Wenn einige Pakete fehlen, wie Sie herausfinden, welche sind die fehlenden Pakete?
InformationsquelleAutor Alagappan Ramu | 2013-04-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den pythonic Weg, es zu tun ist über die
pkg_resources
API. Die Anforderungen sind schriftlich in einem verständlichen format setuptools. E. g:Den Beispiel-code:
Schleife über die require-Aufruf mit einem try: except pkg_resources.DistributionNotFound einwickeln der Anruf. Dann auf Ausnahme, die Sie drucken. Auf diese Weise werde es Ihnen sagen, alle fehlenden Abhängigkeiten und nicht sterben an dem ersten fehlt eine gefunden.
Aufbauend auf Ihren Vorschlag, ich habe aktualisiert, meine Antwort zu verwenden untertests.
InformationsquelleAutor Zaur Nasibov
Können Sie laufen
pip freeze
um zu sehen, was Sie installiert haben, und vergleichen Sie es mit Ihrenrequirements.txt
Datei.Wenn Sie möchten, installieren Sie fehlende Module, die Sie ausführen können
pip install -r requirements.txt
und installieren Sie alle fehlenden Module und sagen Sie am Ende, welche waren fehlen und installiert.InformationsquelleAutor John Jiang
Basiert auf der Antwort von Zaur, vorausgesetzt, Sie verwenden in der Tat eine
requirements.txt
Datei, möchten Sie vielleicht einen unit-test, vielleicht intests/test_requirements.py
, das bestätigt die Verfügbarkeit der Pakete.Dieser Ansatz verwendet eine Aufgabengruppe unabhängig bestätigen jede Anforderung. Dies ist nützlich, so dass alle Ausfälle dokumentiert werden.
InformationsquelleAutor A-B-B
Können Sie erstellen eine virtualenv mit Zugriff auf die system-Website-Pakete und testen Sie überprüfen, ob das Paket (oder eine andere Abhängigkeiten) installiert sind oder nicht. Auf diese Weise werden die Pakete nicht richtig installiert sind (wenn Sie nur wollen, um zu überprüfen). Ein Beispiel für die Verwendung virtualenv-wrapper wäre:
InformationsquelleAutor yucer
Wenn requirements.txt ist wie :
Dann das folgende Skript wird Ihnen sagen, welche Module fehlen :
Diese drucken würde :
django==1.5.1
In der Tat. Und Sie wird scheitern, wenn die Module aufgelistet sind, die in einer Linie zu. Es funktioniert, wie gesagt, wenn requirements.txt Liste ein Modul pro Zeile.
Sind Sie sicher, dass der Paket-name ist der gleiche wie Modul-name?
Was
python-memcached
,django-json-field
,django-statsd-mozilla
usw?InformationsquelleAutor Jean Coiron