Che è il più pythonic: Installare moduli Python tramite un gestore di pacchetti (macports, apt) o tramite pip / easy_install / setuptools

StackOverflow https://stackoverflow.com/questions/1559372

Domanda

Di solito tendo di installare le cose tramite il gestore di pacchetti, per le cose Unixy. Tuttavia, quando ho programmato un sacco di Perl, vorrei utilizzare CPAN, le versioni più recenti e tutto il resto.

In generale, ho usato per installare roba sistema tramite gestore di pacchetti, e roba del genere lingua tramite il proprio gestore dei pacchetti (gemma / easy_install | pip / CPAN)

Ora con python in primo luogo, mi chiedo che cosa le migliori pratiche è?

È stato utile?

Soluzione

La versione del sistema di pitone e le sue librerie sono spesso utilizzati da software nella distribuzione. Fino a quando il software in uso sono felici con le stesse versioni di Python e tutte le librerie come la vostra distribuzione è, di usare i pacchetti di distribuzione funzionerà bene.

Tuttavia, molto spesso è necessario versione di sviluppo di pacchetti, o la versione più o versioni precedenti. E poi non funziona più.

E 'quindi in genere recommeded di installare la propria versione di Python che si utilizza per lo sviluppo, e di creare ambienti di sviluppo con buildout o virtualenv o entrambi, per isolare il pitone sistema e l'ambiente di sviluppo gli uni dagli altri.

Altri suggerimenti

Ci sono due campi completamente opposti: uno a favore dei pacchetti forniti dal sistema, e uno a favore di installazione separata. Sono personalmente nel campo di "pacchetti di sistema". Io fornire argomenti da ogni lato sotto.

pacchetti di sistema Pro: sistema packager si preoccupa già sulla dipendenza, e il rispetto di criteri di sistema complessive (come il layout di file). pacchetti di sistema forniscono aggiornamenti di sicurezza, mentre ancora prendersi cura di non rompere la compatibilità - in modo che a volte backport protezione consente di risolvere che gli autori originali non backport. pacchetti di sistema sono WRT "sicuro". aggiornamenti del sistema: dopo un aggiornamento del sistema, probabilmente hanno anche una nuova versione di Python, ma tutti i moduli Python sono ancora lì se provengono da un packager sistema. Questo è tutto esperienza personale con Debian.

Con i pacchetti di sistema: non tutti i software può essere fornito come un pacchetto di sistema, o no nella sua ultima versione; l'installazione di roba da soli nel sistema possono rompere i pacchetti di sistema. Gli aggiornamenti possono rompere la vostra applicazione.

Pro installazione separata: Alcune persone (in particolare gli sviluppatori di applicazioni web) sostengono che è assolutamente necessario una configurazione ripetibile, con solo i pacchetti che si desidera, e completamente disaccoppiati da Python sistema. Questo va oltre pacchetti di sistema vs auto-installato, dal momento che anche per l'auto-installato, si potrebbe ancora modificare il sistema di pitone; con l'installazione separata, che non lo farai. Come discute Lennart, ora ci sono catene strumento dedicato al sostegno di questa impostazione. Le persone sostengono che solo questo approccio può garantire risultati ripetibili.

Con installazione a parte: è necessario affrontare con bug fix se stessi, ed è necessario assicurarsi che tutti gli utenti utilizzano l'installazione separata. Nel caso di applicazioni web, quest'ultimo è in genere facile da realizzare.

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