2010-02-21 15 views
5

Desidero utilizzare buildout per la gestione delle dipendenze e sento che distribuire è il nuovo buon modo per gestire l'installazione del progetto.Come iniziare con zc.buildout e Distribuisci?

Tuttavia, le esercitazioni facili per iniziare sembrano essere sottili sul terreno. Il più diretto che ho visto è Jacob Kaplan-Moss's Developing Django apps with zc.buildout (il mio caso d'uso è un'applicazione web), ma ciò non è ancora chiaro su cosa fa ogni pezzo della catena e quali sono le migliori pratiche.

Come posso iniziare questa roba? Voglio fare le cose bene.

risposta

6

Ho appena iniziato a documentare l'intera toolchain allo http://reinout.vanrees.org/weblog/tags/softwarereleasesseries.html (25-02-2010: ancora devo scrivere il buildout e l'articolo del pastescript).

Idea di toolchain di base: utilizzare setuptools per impacchettare il codice Python. Come l'articolo "sviluppo di app di django" che hai citato: ogni applicazione è il suo pacchetto. Inserisci il tuo codice in una directory e aggiungi un setup.py. Setup.py contiene il numero di versione, il nome, le dipendenze e così via e puoi eseguirlo per creare un tuo progetto-0.1.tar.gz, per esempio.

Il download di tutto ("easy_install xyz") fa rapidamente un casino totale e totale dei pacchetti del sito python di sistema. Probabilmente con versioni incompatibili. Buildout (e ad esempio virtualenv) offre un ambiente isolato: i pacchetti installati vengono installati solo localmente su virtualenv/buildout.

Pasticcio parte 2: quali versioni vuoi? Per ottenere qualsiasi misura di ripetibilità e affidabilità, devi essere in grado di controllare le versioni che usi ("Django 1.0 o 1.1?"). Buildout lo consente.

+0

+1 per il collegamento alla serie di versioni del software. (E continua a scrivere! :)) –

+0

Una nota a margine sulla differenza: virtualenv ti consente di impostare tutto come se fossi in un ambiente isolato. e funziona normalmente senza fare confusione con il sistema globale. Buildout installa tutto localmente e cambia il percorso dei pacchetti locali. Entrambi funzionano bene. – Liorsion

+0

+1 per la documentazione. – BenDundee