Salta ai contenuti
Manuale LogoManuale Logo

Ambiente virtuale

Supponi di avere due progetti Python sul 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è nel Python di sistema, i due progetti entrano in conflitto: una sola versione può essere attiva.

Gli ambienti virtuali separano le dipendenze: ogni progetto ha le proprie librerie e le versioni richieste.

Un ambiente virtuale è una cartella isolata con Python e le librerie installate per un progetto. È separata dal Python di sistema e dagli altri ambienti.

Ogni progetto ha quindi il proprio insieme di dipendenze, anche quando due progetti usano la stessa libreria.

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

Terminal window
python -m venv venv

Il comando crea una sottocartella chiamata venv con il necessario. Puoi scegliere un altro nome, ma venv e .venv sono le convenzioni più comuni.

Prima di usarlo, 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 quel momento, pip install installerà le librerie solo in questo ambiente, non nel 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
Strumento Descrizione
venv Già incluso in Python, ideale per iniziare
virtualenv Come venv ma con qualche funzione in più
conda Molto usato in ambito scientifico (Anaconda)
poetry Gestisce dipendenze e packaging in modo moderno
uv Strumento 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