Gibt es ein Rake-Äquivalent in Python?

87

Rake ist ein in Ruby geschriebenes Software-Build-Tool (wie Ant oder Make ), sodass alle Dateien in dieser Sprache geschrieben sind. Gibt es so etwas in Python?

e-satis
quelle
3
Suchen Sie nach einem allgemeinen Tool zur Auflösung und Erstellung von Abhängigkeiten wie make, mit dem Sie Projekte aus jeder Sprache erstellen können? Oder etwas speziell zum Erstellen von Python-Paketen?
Ian Clelland
1
Etwas allgemeines. Das Erstellen eines Python-Pakets ist interessant, kann jedoch mit allgemeinen Tools durchgeführt werden.
E-Satis
1
siehe auch farmdev.com/
Thoughts/
4
Ist jemand von Joe Armstrong hierher gekommen? youtu.be/lKXe3HUG2l4?t=1270
Neffe vom

Antworten:

37

Invoke - Fabric ohne die SSH-Abhängigkeiten.

In der Fabric-Roadmap wird erläutert, dass Fabric 1.x in drei Teile unterteilt wird:

  1. Aufrufen - Die Nicht-SSH-Taskausführung.
  2. Fabric 2.x - Die Remote-Ausführungs- und Bereitstellungsbibliothek, die Invoke verwendet .
  3. Patchwork - Die "allgemeinen Bereitstellungs- / Systemadministrationsvorgänge, die auf Fabric basieren".

Invoke ist ein Python-Tool und eine Bibliothek zur Ausführung von Aufgaben (2.6+ und 3.3+), die sich von verschiedenen Quellen inspirieren lassen, um zu einem leistungsstarken und übersichtlichen Funktionsumfang zu gelangen.

Nachfolgend einige beschreibende Aussagen von der Invoke -Website:

  • Invoke ist ein Python-Tool und eine Bibliothek zur Ausführung von Aufgaben (2.6+ und 3.3+), die sich von verschiedenen Quellen inspirieren lassen, um zu einem leistungsstarken und übersichtlichen Funktionsumfang zu gelangen.
  • Wie Rubys Rake-Tool und Invokes eigener Vorgänger Fabric 1.x bietet es eine saubere API auf hoher Ebene zum Ausführen von Shell-Befehlen und zum Definieren / Organisieren von Aufgabenfunktionen aus einer Datei "functions.py".
Matthew Rankin
quelle
1
@IgorZevaka jetzt funktioniert es unter Windows, das gleiche Thema - github.com/pyinvoke/invoke/pull/119
Roman M. Koss
War Shovel Benutzer vor etwa 4 Jahren. Gehen Sie jetzt definitiv mit Invoke. Sehr coole Kommandozeilenschnittstelle, Aufgabendeklaration ist nett und einfach, Verkettung fühlt sich an wie bei Make. Nett.
ddotsenko
6

Waf ist ein Python-basiertes Framework zum Konfigurieren, Kompilieren und Installieren von Anwendungen. Es leitet sich von den Konzepten anderer Build-Tools wie Scons, Autotools, CMake oder Ant ab.

las3rjock
quelle
1
Was sind die Vorteile von Waf anderen Scons?
E-Satis
5

Obwohl es häufiger für die Bereitstellung verwendet wird, könnte Fabric für diesen Anwendungsfall interessant sein.

charlax
quelle
4

Es gibt auch Doit - ich bin vor einiger Zeit darauf gestoßen, als ich nach diesen Dingen gesucht habe, obwohl ich mit der Bewertung nicht weit gekommen bin.

Hamish Downer
quelle
0

Schauen Sie sich auch das Buildout an, das weniger ein Make-System für Software als ein Make-System für eine Bereitstellung ist.

http://pypi.python.org/pypi/pysqlite/2.5.5

Es ist also kein direktes Rechenäquivalent, aber es passt möglicherweise besser zu dem, was Sie tun möchten, oder zu einem wirklich miesen.

Lennart Regebro
quelle
1
Buildout dafür zu verwenden ist, als würde man einen Panzer zum Einkaufszentrum bringen, nicht wahr? Die Verwendung von Zope / Plone-Werkzeugen außerhalb von Zope / Plone ist im Allgemeinen ohnehin :-p
e-satis
"Dafür"? Er gab nicht an, wofür er es verwenden wollte. Auf jeden Fall ist Buildout kein Zope / Plone-Tool. Es ist auch nicht groß oder komplex. Es ist wirklich anstrengend, dass einige Leute das Tool nur ablehnen, weil es von Zope-Entwicklern geschrieben oder verwendet wird. Diese Einstellung ist ziemlich dumm.
Lennart Regebro
Komm schon, das war nur necken. Ich habe für eine reine Plone-Firma gearbeitet und ja, wir machen viele Witze über die Tools, die wir verwendet haben. Das ist eine vernünftige Einstellung, meinst du nicht auch?
E-Satis
0

Es gibt Phantom in Boo (was nicht Python ist, aber fast).

Wernight
quelle
-2

Ich würde auschecken distutils:

Das distutilsPaket bietet Unterstützung für das Erstellen und Installieren zusätzlicher Module in einer Python-Installation. Die neuen Module können entweder 100% -reines Python oder in C geschriebene Erweiterungsmodule oder Sammlungen von Python-Paketen sein, die Module enthalten, die sowohl in Python als auch in C codiert sind.

Andrew Hare
quelle
Unterstützt es Dinge wie die Erstellung von Dokumentationen oder das Ausführen von Komponententests?
Wernight