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?


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".

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.


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.



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.


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


-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.


Unterstützt es Dinge wie die Erstellung von Dokumentationen oder das Ausführen von Komponententests?
Wernight
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.