Maven-Äquivalent für Python [geschlossen]

146

Ich bin ein Java-Entwickler / Python-Anfänger und vermisse meine Maven-Funktionen, insbesondere das Abhängigkeitsmanagement und die Build-Automatisierung (ich meine, Sie erstellen nicht, aber wie erstelle ich ein Paket für die Bereitstellung?)

Gibt es ein Python-Äquivalent, um diese Funktionen zu erreichen?
Hinweis: Ich verwende Python 2.x.

Vielen Dank.

Enno Shioji
quelle

Antworten:

70

Python verwendet Distutils und Setuptools für Abhängigkeit und Verpackung.

Hier ist ein Tutorial, das die Grundlagen erklärt: http://docs.activestate.com/activepython/3.2/diveintopython3/html/packaging.html

Kurz gesagt, Sie haben die Datei setup.py, die Informationen zu Abhängigkeiten und zur Kompilierung / Installation von Skripten enthält, und Sie können damit Eier, dist-Tarballs, binäre Tarballs usw. erstellen.

Daniel Kluev
quelle
6
Da der teuer verstorbene Mark Pilgrim diesen Ort geschlossen hat, ist hier ein Spiegel im Aktivzustand .
Jiggy
2
Ich würde empfehlen, dies zu aktualisieren, um auf das Python Packaging-Benutzerhandbuch zu verweisen, da es jetzt das maßgebliche Handbuch ist.
Kojiro
38

Es gibt keine direkte Übereinstimmung. Der nächstgelegene kann jedoch erreicht werden:

  • zc.buildout : Es kann geschlossene Umgebungen einrichten , Abhängigkeiten herunterladen / verarbeiten, Skripte initialisieren usw. Es baut auch auf Plugins (oder "Rezepten", wie sie genannt werden) auf. Ich habe es vor ein paar Jahren verwendet, als es sich in der Beta-Phase befand. Wahrscheinlich hat es sich seitdem weiterentwickelt. Es gibt eine Lernkurve wie bei Maven, aber sie ist auch die mächtigste.

Andere Angebote sind Teilmengen von Maven / zc.buildout:

Sie kennen sich wahrscheinlich mit Ant- und Shell-Skripten aus, sodass Sie auch diese Python-Tools überprüfen können:

  • Stoff oder Fertiger : Befehlszeilen-Task-Läufer mit zusätzlichen Geschmacksrichtungen. Sie verpacken Ihre herkömmliche Befehlszeilenausführung in Python und ermöglichen eine leistungsfähigere Verwaltung verschiedener Aufgaben (Aufgabenabhängigkeiten, Interpretation der Ausgabe, Ausführen von Befehlen auf dem Remote-Server usw.). Grundsätzlich nichts, was Sie mit Shell-Skripten nicht tun könnten, aber in Python ist es viel weniger kryptisch.
Tuukka Mustonen
quelle
14

Ich möchte auf PyBuilder hinweisen das stark von Maven inspiriert ist, aber Python anstelle von XML für die Konfiguration verwendet, sodass es meiner Meinung nach tatsächlich lesbar ist.

Es gibt ein Plugin für das Abhängigkeitsmanagement (verwendet pip unter der Haube und unterscheidet zwischen Build- und Laufzeitabhängigkeiten). Ähnlich wie bei maven können Sie den gesamten Build-Lebenszyklus mit einem einzigen Befehl durchlaufen.

user245678
quelle
9

Schauen Sie sich für den Einsatz neben distutils / setuptoos auch das pip-Paket an (verwendet darunter setuptools). Es kann fehlgeschlagene Installationen zurücksetzen und auch deinstallieren (etwas fehlt in easy_install / setuptools). Darüber hinaus können Sie Abhängigkeiten über eine Anforderungs-Textdatei angeben.

ars
quelle
6

Es ist gut, virtualenv zu verwenden, um eine eigenständige Projektumgebung zu erstellen und pip / easy_install zum Verwalten von Abhängigkeiten zu verwenden.

Ning Sun.
quelle
7
Das ist traurig
:)