Was ist der effizienteste Weg, alle Abhängigkeiten aufzulisten, die für die Bereitstellung eines Arbeitsprojekts an einem anderen Ort (z. B. auf einem anderen Betriebssystem) erforderlich sind?
Python 2.7, Windows-Entwicklungsumgebung, die kein virtualenv pro Projekt verwendet, sondern eine globale Entwicklungsumgebung, Bibliotheken nach Bedarf installieren, fröhlich von einem Projekt zum nächsten hüpfen.
Ich habe die meisten (nicht sicheren alle ) Bibliotheken, die ich für ein bestimmtes Projekt installieren musste, im Auge behalten. Ich habe nicht den Überblick über alle Sub-Abhängigkeiten behalten, die mit ihnen automatisch installiert wurden. Doing pip freeze
listet beide auf und alle anderen Bibliotheken, die jemals installiert wurden.
Gibt es eine Möglichkeit, anzugeben, was Sie installieren müssen, nicht mehr und nicht weniger, um das Projekt bereitzustellen?
Hinweis: Ich kann mir nicht vorstellen, dass es noch kein Q + A gibt, aber ich kann es nicht finden.
BEARBEITEN Im Hinblick auf die Antworten unten, einige Erläuterungen. Mein Projekt besteht aus einer Menge von Modulen (die ich geschrieben habe), jede mit einem Haufen import
s. Sollte ich einfach alle Importe von allen Modulen in eine einzige Datei kopieren, sortieren, Duplikate eliminieren und alle aus der Standard-Bibliothek entfernen (und woher weiß ich, dass sie das sind)? Oder gibt es einen besseren Weg? Das ist die Frage.
pipreqs
löst das Problem. Es generiert projektebene requirement.txt-Datei.
Installieren Sie pipreqs: pip install pipreqs
Wenn Sie weitere Vorteile von pipreqs
über pip freeze
lesen möchten, lesen Sie hier
Scannen Sie Ihre import
-Anweisungen. Wahrscheinlich importieren Sie nur Dinge, die Sie explizit importieren wollten, und nicht die Abhängigkeiten.
Mache eine Liste wie die pip freeze
und erstelle und aktiviere ein virtualenv.
Do pip install -r your_list
, und versuchen Sie, Ihren Code in diesem virtualenv auszuführen. Behalten Sie alle ImportError
-Ausnahmen, stimmen Sie sie mit Paketen ab und fügen Sie sie Ihrer Liste hinzu. Wiederholen Sie den Vorgang, bis der Code ohne Probleme ausgeführt wird.
Sie haben jetzt eine Liste, die Sie auf Ihrer Bereitstellungssite an pip install
füttern können.
Dies ist extrem manuell, erfordert jedoch keine externen Tools und zwingt Sie, sicherzustellen, dass Ihr Code ausgeführt wird. (Das Ausführen Ihrer Testsuite als Überprüfung ist großartig, aber nicht ausreichend.)
Der Weg dazu besteht in der Analyse Ihrer Importe. Um das zu automatisieren, schau dir Snakefood an. Dann können Sie eine requirements.txt
Datei erstellen und auf Ihrem Weg zur Verwendung von virtualenv
.
Im Folgenden werden die Abhängigkeiten aufgeführt, ausgenommen Module aus der Standardbibliothek:
%Vor%Verwandte Fragen:
Erhalte eine Liste der verwendeten Python-Pakete von einem Django-Projekt
>Tags und Links python