2011-04-30 14 views
332

Ultimamente ho sentito parlare di virtualenv e sono interessato. Ma tutto ciò che ho sentito è un'infarinatura di lode, e non ho una chiara comprensione di cosa sia o come usarlo.Tutorial virtualenv per principianti completi?

sto cercando (idealmente) un follow-lungo tutorial che mi può prendere da Windows o Linux senza Python su di esso, e spiegare ogni passo (in nessun ordine particolare):

  • cosa devo fare per essere in grado di iniziare a utilizzare virtualenv
  • motivi specifici per cui utilizzando virtualenv è una buona idea
  • situazioni in cui posso/non posso utilizzare virtualenv
  • situazioni in cui dovrei/non dovrei usare virtualenv

E attraversare (in modo completo) un paio di situazioni campione della varietà + lattina possibile.

Quindi quali sono alcuni buoni tutorial per coprire questa roba? O se hai tempo e interesse, forse puoi rispondere ad alcune di queste domande qui. Sia nella tua risposta, sia come link ai tutorial che rispondono, queste sono le cose che mi piacerebbe sapere.

+5

Questo articolo da [dabapps] (http://dabapps.com/blog/introduction-to-pip-and-virtualenv-python) rende i concetti semplici – suhair

+0

Controlla questa guida http://thepythonguru.com/python- virtualenv-guide/ – Cody

+1

Ecco un nuovo tutorial: https://realpython.com/blog/python/python-virtual-environments-a-primer/ – nofinator

risposta

230
+3

+1 Sono d'accordo che erano buoni per un principiante come me. Mi sono imbattuto in entrambi, ora almeno so cosa sia e le basi per prenderlo/usarlo. (Il secondo, per qualche ragione, ha spiegato 'activate' ma negletto' deactivate' o_O). Sto ancora sperando in una maggiore elaborazione su quando usarlo (e quando non farlo) e su esempi più profondi. –

+1

Credo che la risposta sia sempre di usarlo, allo stesso modo si dovrebbe sempre usare il controllo di versione. – mlissner

+0

simononsoftware non è stato caricato alle 1 ora di Melbourne 28 maggio 2013 – Alex

7

Ecco un altro buon uno: http://www.saltycrane.com/blog/2009/05/notes-using-pip-and-virtualenv-django/

Questo mostra come utilizzare pip e un file requisiti pip con virtualenv; I due tutorial suggeriti da Scobal sono entrambi molto utili ma sono entrambi easy_install-centrico.

Si noti che nessuno di questi tutorial spiega come eseguire una diversa versione di Python all'interno di un virtualenv - per questo, si veda questo SO domanda: Use different Python version with virtualenv

28

virtualenv è uno strumento per creare isolati ambienti Python.

Diciamo che si sta lavorando in 2 diversi progetti, A e B. Progetto A è un progetto web e la squadra sta usando i seguenti pacchetti:

  • Python 2.8.x
  • Django 1.6 .x

Il progetto B è anche un progetto web, ma il team sta utilizzando:

  • Python 2.7.x
  • Django 1.4.x

La macchina che si sta lavorando non ha alcuna versione di Django, che cosa si dovrebbe fare? Installa django 1.4? django 1.6? Se installi django 1.4 a livello globale sarebbe facile puntare a django 1.6 per lavorare nel progetto A?

Virtualenv è la soluzione! È possibile creare 2 virtualenv diversi, uno per il progetto A e un altro per il progetto B. Ora, quando è necessario lavorare nel progetto A, è sufficiente attivare virtualenv per il progetto A e viceversa.

Un consiglio migliore quando si utilizza virtualenv è installare virtualenvwrapper per gestire tutte le virtualenv che si hanno, facilmente. È un wrapper per creare, lavorare, rimuovere virtualenv's.

+1

Sebbene questo collegamento possa rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il link per riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia. – joce

+1

Ho modificato la risposta e aggiunto più valore allo stesso. Grazie per il feedback – lborgav

2

Per la configurazione di virtualenv su un'installazione pulita di Ubuntu, ho trovato questo zookeeper tutorial il migliore: è possibile ignorare le parti relative a zookeper. Lo virtualenvwrapper documentation offre contenuti simili, ma è un po 'scarso nel dirti cosa esattamente inserire nel tuo file .bashrc.