Maven equivalente per Python [chiuso]


146

Sono uno sviluppatore java / un principiante di Python e mi mancano le mie funzionalità maven, in particolare la gestione delle dipendenze e l'automazione della compilazione (intendo che non si crea, ma come creare un pacchetto per la distribuzione?)

Esiste un equivalente di Python per ottenere queste funzionalità?
Nota: utilizzo python 2.x

Grazie.

Risposte:


70

Python utilizza distutils e setuptools per la dipendenza e il packaging.

Ecco un tutorial che spiega le basi: http://docs.activestate.com/activepython/3.2/diveintopython3/html/packaging.html

In breve, avrai il file setup.py, che contiene informazioni sulla dipendenza e sulla compilazione / installazione degli script, e puoi costruire uova, dist tarball, tarball binari, ecc.


6
Dal momento che Mark Pilgrim, caro elettro-defunto, ha chiuso quel sito, ecco lo specchio di Activestate .
jiggy,

2
Consiglio di aggiornarlo per fare riferimento a The Python Packaging User Guide poiché ora è la guida autorevole.
Kojiro,

38

Non esiste una corrispondenza diretta. Tuttavia, il più vicino che puoi ottenere:

  • zc.buildout : può configurare ambienti chiusi, scaricare / gestire dipendenze, inizializzare script, ecc. Si basa anche su plugin (o "ricette", come li chiamano). L'ho usato alcuni anni fa quando era in fase beta, probabilmente si è evoluto da allora. C'è una curva di apprendimento, come con Maven, ma è anche la più potente.

Altre offerte sono sottoinsiemi di Maven / zc.buildout:

Probabilmente conosci Ant e shell scripting, quindi puoi anche controllare questi strumenti di Python:

  • Fabric o Paver : runner della riga di comando con sapori aggiunti. Avvolgono la tua tradizionale esecuzione da riga di comando in Python e consentono di gestire varie attività in un modo più potente (dipendenze di attività, interpretazione dell'output, esecuzione di comandi nel server remoto, ecc.). Fondamentalmente nulla che non si potesse fare con gli script di shell, ma in Python è molto meno enigmatico.

14

Vorrei sottolineare PyBuilder che è fortemente ispirato a Maven ma usa Python invece di XML per la configurazione, quindi è in realtà leggibile, IMHO.

Esiste un plug-in per la gestione delle dipendenze (usa pip sotto il cofano e differenzia tra dipendenze di build e runtime) e, non diversamente da maven, è possibile eseguire l'intero ciclo di vita della build con un singolo comando.


9

Per la distribuzione, oltre a distutils / setuptoos, dai un'occhiata anche al pacchetto pip (usa i setuptools sottostanti). Può eseguire il rollback di installazioni non riuscite e anche disinstallare (qualcosa che manca da easy_install / setuptools). Inoltre, è possibile specificare le dipendenze tramite un file di testo dei requisiti.


6

È utile utilizzare virtualenv per creare un ambiente di progetto autonomo e utilizzare pip / easy_install per le dipendenze di gestione.


7
È triste
:)
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.