Non c'è davvero una sola "risposta" a questa domanda, ma ci sono sicuramente alcuni concetti utili che possono aiutarti a prendere una decisione.
La prima domanda a cui è necessario rispondere nel tuo caso d'uso è "Voglio usare il sistema Python?" Se vuoi usare il Python distribuito con il tuo sistema operativo, allora usare il metodo apt-get install potrebbe andare bene. Tuttavia, a seconda del metodo di distribuzione del sistema operativo, è necessario porre altre domande, come "Voglio installare più versioni di questo pacchetto?" Se la risposta è sì, probabilmente non è una buona idea usare qualcosa come apt. Dpkg praticamente decomprimerà un archivio alla radice del filesystem, quindi spetta al manutentore del pacchetto assicurarsi che il pacchetto venga installato in modo sicuro con pochissime supposizioni. Nel caso della maggior parte dei pacchetti Debian, presumo (qualcuno può sentirsi libero di correggermi qui) che semplicemente decomprimono e forniscono un pacchetto di primo livello.
Ad esempio, supponiamo che il pacchetto sia "virtualenv", finiresti con /usr/lib/python2.x/site-packages/virtualenv
. Se lo installi con easy_install
, otterrai qualcosa del genere /usr/lib/python2.x/site-packages/virtualenv.egg-link
che potrebbe indicare /usr/lib/python2.x/site-packages/virtualenv-1.2-2.x.egg
una directory o un uovo zippato. Pip fa qualcosa di simile anche se non usa le uova e invece posizionerà il pacchetto di primo livello direttamente nella lib
directory.
Potrei essere fuori strada, ma il punto è che ogni metodo tiene conto di esigenze diverse. Questo è il motivo per cui strumenti come virtualenv sono utili in quanto ti consentono di sandboxing le tue librerie Python in modo da poter avere qualsiasi combinazione di librerie e versioni di cui hai bisogno.
Setuptools permette anche di installare pacchetti come multiversione, il che significa che non viene dule_name.egg-link
creato un singolo mo . Per importare quei pacchetti devi usare pkg_resources e la __import__
funzione.
Tornando alla tua domanda originale, se sei soddisfatto del sistema python e hai intenzione di utilizzare virtualenv e pip per creare ambienti per diverse applicazioni, l'installazione di virtualenv e / o pip a livello di sistema utilizzando apt-get sembra totalmente appropriata. Una parola di cautela è però che se hai intenzione di aggiornare le tue distribuzioni Python, ciò potrebbe avere un effetto a catena attraverso i tuoi virtualenvs se ti ricolleghi ai pacchetti del tuo sito di sistema.
Dovrei anche menzionare che nessuna di queste opzioni è intrinsecamente migliore delle altre. Semplicemente adottano approcci diversi. L'utilizzo della versione di sistema è un modo eccellente per installare le applicazioni Python, ma può essere un modo molto difficile per sviluppare con Python. La facilità di installazione e setuptools è molto conveniente in un mondo senza virtualenv, ma se è necessario utilizzare versioni diverse della stessa libreria, diventa anche piuttosto ingombrante. Pip e virtualenv si comportano davvero più come una macchina virtuale. Invece di preoccuparti di installare le cose fianco a fianco, crei semplicemente un ambiente completamente nuovo. Lo svantaggio qui è che più di 30 virtualenv in seguito potresti aver utilizzato un bel po 'di spazio su disco e ingombrato il tuo filesystem.
Come puoi vedere, con le molte opzioni è difficile dire quale metodo usare, ma con una piccola indagine sui tuoi casi d'uso, dovresti essere in grado di trovare un metodo che funzioni.
ez_setup.py
una "versione leggera" di ottenere pip. Farei lo stesso ma temo che si rompa nel prossimo futuro e rimarrò bloccato di nuovo qui (come faccio sempre)