Skip to content

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

Ripristinare un progetto su un altro computer

Section titled “Ripristinare un progetto su un altro computer”

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