Esiste un equivalente di Rake in Python?


87

Rake è uno strumento di compilazione software scritto in Ruby (come Ant o Make ), quindi tutti i suoi file sono scritti in questo linguaggio. Esiste qualcosa di simile in Python?


3
Stai cercando una risoluzione generale delle dipendenze e uno strumento di compilazione, come make, che può creare progetti da qualsiasi lingua? O qualcosa per costruire specificamente pacchetti Python?
Ian Clelland

1
Qualcosa di generale. La creazione di un pacchetto Python è interessante, ma può essere eseguita con strumenti generali.
e-satis



4
Qualcuno è venuto qui dallo scivolo di Joe Armstrong? youtu.be/lKXe3HUG2l4?t=1270
nephewtom

Risposte:


28

Paver ha una serie di obiettivi simile, anche se non so davvero come si confronta.


Questo sembra decisamente il più vicino.
e-satis

1
Sembra che abbia perso slancio nel 2011
John Mee il

2
Il progetto è ancora attivo, il changelog è ora qui: pythonhosted.org/Paver/changelog.html
Stefan Schmidt

1
L'ultima versione su pythonhosted.org/Paver/changelog.html è1.1.0 (July 30, 2012)
clacke

Qualche opinione su Invoke (menzionato in altre risposte su questa domanda), vs Paver? sono "concorrenti" diretti? Pro e contro?
inger

38

Richiama - Fabric senza le dipendenze SSH.

La roadmap di Fabric spiega che Fabric 1.x sarà suddiviso in tre parti:

  1. Invoke : l'esecuzione dell'attività non SSH.
  2. Fabric 2.x: la libreria di esecuzione e distribuzione remota che utilizza Invoke .
  3. Patchwork - Le "operazioni comuni di distribuzione / sysadmin, basate su Fabric".

Invoke è uno strumento e una libreria di esecuzione di attività Python (2.6+ e 3.3+), che trae ispirazione da varie fonti per arrivare a un set di funzionalità potente e pulito.

Di seguito sono riportate alcune dichiarazioni descrittive dal sito Web di Invoke :

  • Invoke è uno strumento e una libreria di esecuzione di attività Python (2.6+ e 3.3+), che trae ispirazione da varie fonti per arrivare a un set di funzionalità potente e pulito.
  • Come lo strumento Rake di Ruby e il predecessore Fabric 1.x di Invoke, fornisce un'API pulita e di alto livello per l'esecuzione dei comandi della shell e la definizione / organizzazione delle funzioni dell'attività da un file tasks.py.

1
@IgorZevaka ora funziona su Windows, lo stesso argomento - github.com/pyinvoke/invoke/pull/119
Roman M. Koss

1
Era un utente di Shovel circa 4 anni fa. Sicuramente vai con Invoke ora. Interfaccia a riga di comando molto interessante, la dichiarazione delle attività è piacevole e facile, il concatenamento sembra quello di Make. Bello.
ddotsenko

Qualche opinione su Paver (menzionata in altre risposte su questa domanda), vs Invoke? sono "concorrenti" diretti? Pro e contro?
inger


6

Waf è un framework basato su Python per la configurazione, la compilazione e l'installazione di applicazioni. Deriva dai concetti di altri strumenti di build come Scons, Autotools, CMake o Ant.


1
Quali sono i vantaggi di Waf altri scons?
e-satis

5

Sebbene sia più comunemente utilizzato per la distribuzione, Fabric potrebbe essere interessante per questo caso d'uso.


4

C'è anche un doit : mi sono imbattuto in esso mentre cercavo queste cose qualche tempo fa, anche se non sono andato molto lontano nel valutarlo.


0

Controlla anche buildout, che non è tanto un sistema di creazione per il software, quanto un sistema di creazione per una distribuzione.

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

Quindi non è un equivalente del rake diretto, ma potrebbe essere una corrispondenza migliore per quello che vuoi fare, o davvero scadente.


1
Usare il buildout per questo è come giustificare un carro armato per andare al centro commerciale, non è vero? Usare qualsiasi strumento Zope / Plone al di fuori di Zope / Plone generalmente è, comunque :-p
e-satis

"Per quello"? Non ha specificato per cosa voleva usarlo. Comunque, buildout non è uno strumento Zope / Plone. Inoltre non è né grande né complesso. È davvero stancante che alcune persone ignorino lo strumento solo perché è scritto o utilizzato dagli sviluppatori Zope. Quell'atteggiamento è piuttosto stupido.
Lennart Regebro,

Andiamo, era solo una presa in giro. Lavoravo per una società solo per Plone e sì, usiamo per fare molte battute sugli strumenti che stavamo usando. È un atteggiamento sano, non credi?
e-satis


-2

Vorrei controllare distutils:

Il distutilspacchetto fornisce supporto per la creazione e l'installazione di moduli aggiuntivi in ​​un'installazione Python. I nuovi moduli possono essere Python puro al 100%, o possono essere moduli di estensione scritti in C, o possono essere raccolte di pacchetti Python che includono moduli codificati sia in Python che in C.


supporta cose come la generazione di documentazione o l'esecuzione di unit test?
Wernight
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.