Salta ai contenuti

Ambiente virtuale

Immagina di avere due progetti Python sul tuo computer:

  • Progetto A funziona con la versione 2.25 della libreria requests
  • Progetto B ha bisogno della versione 2.31 della stessa libreria

Se installi tutto “globalmente” (cioè direttamente sul tuo Python di sistema), i due progetti entrano in conflitto: puoi avere una versione sola, e l’altra non funziona.

Gli ambienti virtuali risolvono questo problema: ogni progetto ha la sua “bolla” separata con le proprie librerie, nella versione giusta.


Un ambiente virtuale è una cartella isolata che contiene una copia di Python e di tutte le librerie installate per quel progetto. È separata dal Python del sistema e dagli altri progetti.

Pensa a uno zaino: ogni studente ha il suo, con i propri libri e materiali. Anche se due studenti usano lo stesso manuale, le loro copie sono indipendenti.


Python include già il modulo venv per creare ambienti virtuali. Nella cartella del tuo progetto, esegui:

Terminal window
python -m venv venv

Questo crea una sottocartella chiamata venv con tutto il necessario. Puoi darle qualsiasi nome, ma venv o .venv sono le convenzioni più usate.


Prima di poterlo usare, devi “attivarlo”:

Su macOS e Linux:

Terminal window
source venv/bin/activate

Su Windows:

Terminal window
venv\Scripts\activate

Quando l’ambiente è attivo, il nome appare all’inizio del prompt del terminale:

Terminal window
(venv) $

Da questo momento, qualsiasi pip install installerà le librerie solo in questo ambiente, non sul sistema globale.


Quando hai finito di lavorare al progetto:

Terminal window
deactivate

Il prompt torna alla normalità, senza (venv).


Ecco la sequenza completa per un nuovo progetto:

Terminal window
# 1. Crea la cartella del progetto
mkdir mio-progetto
cd mio-progetto
# 2. Crea l'ambiente virtuale
python -m venv venv
# 3. Attivalo
source venv/bin/activate # macOS/Linux
# venv\Scripts\activate # Windows (alternativa)
# 4. Installa le librerie necessarie
pip install requests pandas
# 5. Lavora sul progetto...
# 6. Salva le dipendenze in un file per condividerle
pip freeze > requirements.txt

Quando qualcuno riceve il tuo progetto (o tu stesso lo riapri su un altro computer):

Terminal window
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt # Installa tutte le librerie elencate nel file

La cartella venv è pesante (può occupare centinaia di megabyte) e si può sempre ricreare con pip install -r requirements.txt. Non ha senso caricarla su Git.

Aggiungi queste righe al file .gitignore del tuo progetto:

venv/
.venv/
__pycache__/
*.pyc

StrumentoDescrizione
venvGià incluso in Python — ideale per iniziare
virtualenvCome venv ma con qualche funzione in più
condaMolto usato in ambito scientifico (Anaconda)
poetryGestisce dipendenze e packaging in modo moderno
uvStrumento moderno e molto veloce

Per ora, venv è più che sufficiente.


Terminal window
# Su macOS/Linux: mostra quale Python sta usando
which python
# Su Windows: mostra quale Python sta usando
where python
# Mostra le librerie installate nell'ambiente attivo
pip list