Domanda

ho usato per essere uno sviluppatore Java e abbiamo usato strumenti come formica o Maven per gestire i nostri ambienti di sviluppo / test / SVS in modo standardizzato. Questo ci ha permesso di gestire dipendenze di librerie, impostare le variabili del sistema operativo, la compilazione, la distribuzione, l'esecuzione di test di unità, e tutti i compiti richiesti. Inoltre, gli script generati garantito che tutti gli ambienti sono stati quasi ugualmente configurati, e tutte le attività sono state eseguite nello stesso modo da tutti i membri del team.

sto iniziando a lavorare in Python ora e vorrei il tuo consiglio in cui strumenti devono utilizzare per eseguire la stessa come descritto per java.

È stato utile?

Soluzione

  1. virtualenv per creare un ambiente virtuale contenuta (evitare che diverse versioni di Python o Python pacchetti stomping da uno sull'altro). C'è una crescente brusio da persone che si spostano a questo strumento. L'autore è lo stesso del vecchio working-env.py menzionato da Aaron.

  2. pip per installare i pacchetti all'interno di un virtualenv. Il tradizionale è easy_install come risposta da S. Lott, ma pip funziona meglio con virtualenv. easy_install conserva ancora elementi non si trovano in pip però.

  3. scons come un tool di creazione, anche se non sarà bisogno di questo se si rimane puramente Python .

  4. tessuto incollare o finitrice per la distribuzione.

  5. buildbot per l'integrazione continua.

  6. Bazaar, Mercurial, o git per il controllo di versione.

  7. Naso come estensione per unit testing.

  8. PyFit per test FIT.

Altri suggerimenti

Io lavoro anche con Java e Python. Per lo sviluppo di pitone l'esperto equivalente è setuptools ( http://peak.telecommunity.com/DevCenter/setuptools). Per lo sviluppo di applicazioni web Io uso questo, in combinazione con paster ( http://pythonpaste.org/ ) per il processo di distribuzione

easy_install ?

Per i nostri server Linux, usiamo easy_install e yum.

Per i nostri computer portatili di sviluppo di Windows, usiamo easy_install e pochi MSI per alcuni progetti.

La maggior parte delle librerie Python che usiamo sono solo il sorgente, in modo che possiamo utilizzare la stessa distribuzione su tutte le caselle. Se potessimo avere un dispositivo di rete condivisa, saremmo metterli tutti lì. Purtroppo, la nostra infrastruttura è una specie di dispersi, quindi dobbiamo o spostare i file .tar intorno o ripetere le installazioni per ricostruire gli ambienti.

In alcuni casi (ad esempio, Pil), dobbiamo ricompilare e controllare i numeri di versione.

Si vuole easy_setup per ottenere le uova (più o meno quello che Maven chiama un artefatto).

Per impostare il proprio ambiente, uno sguardo ai working-env.py

Python non è compilato, ma si può mettere tutti i file di un progetto in un uovo. Questo viene fatto con setuptools

Per CI, controllare questa risposta .

Ci sarebbe negligente per non parlare anche Paver , che è stato creato da Kevin Dangoor di TurboGears fama. Il progetto è ancora in alpha, ma sembra molto promettente. Un frammento della pagina del progetto:

  

Paver è uno strumento di scripting accumulo / distribuzione / deployment basato su Python lungo le linee di Make or Rake. Ciò che rende unico Paver è la sua integrazione con le librerie Python comunemente utilizzati. Attività comuni che erano facili prima di rimangono facile. Ancora più importante, si occupano con le applicazioni specifiche esigenze e requisiti è ora molto più semplice.

Lo faccio esattamente questo con una combinazione di setuptools e Hudson. So Hudson è un'applicazione Java, ma è possibile eseguire Python roba bene.

Si potrebbe voler controllare il nostro Devenv . Esso permette di standardizzare gli ambienti di generazione per lo sviluppo, QA e SVS. È gratis come in "birra gratis".

HTH

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top