Ambienti virtuali Python (venv) in 5 minuti
Hai installato Python e stai per lanciare uno script? In 5 minuti crei un ambiente virtuale (venv) e isoli i pacchetti senza rischiare di rompere il sistema.
Se stai per scaricare uno script Python trovato online, fermati un istante: il comando da imparare prima di tutti gli altri è l’ambiente virtuale (venv).
Quando usi pip per scaricare pacchetti e librerie esterne (ad esempio per scaricare video o leggere PDF), di default Python li installa globalmente. Se oggi installi la libreria X versione 1.0 per un progetto, e domani un altro progetto richiede la versione 2.0, andrai a sovrascrivere i file, rompendo il primo progetto.
Su Linux, installare pacchetti globalmente può addirittura far smettere di funzionare parti del sistema operativo (il famoso errore externally-managed-environment).
La soluzione integrata e nativa si chiama venv. Non è una roba “da programmatori esperti”: ci vogliono pochi secondi per crearlo, e da quel momento ogni progetto resta isolato.
ℹ️ Nota / Prerequisito operativo
Serve Python già installato. Il modulovenvè incluso di default su Windows e macOS. Su Debian/Ubuntu, se manca:sudo apt install python3-venv.
Se Python non c’è ancora, installalo prima (guide dedicate, opzionali rispetto a questa procedura): Windows, macOS, Linux.
Cos’è un ambiente virtuale (venv)?
Non farti spaventare dal nome “virtuale”. Non sto parlando di macchine virtuali pesanti come VirtualBox.
In Python, un ambiente virtuale è semplicemente una normale cartella che contiene una copia privata dell’eseguibile di Python e una propria cartella indipendente per i pacchetti. Quando “attivi” questa cartella, tutto ciò che installi o esegui rimane confinato lì dentro, senza toccare il resto del computer.
Passaggio 1 — Aprire il terminale e creare la cartella del progetto
Percorso principale: Windows. Subito dopo: macOS e Linux.
Apri il terminale
Windows
- Tasto Windows → digita
cmdoppurepowershell→ Invio.
macOS
Cmd + Spazio→ digitaTerminale→ Invio.
Linux
- Apri Terminale dal menu (su molte Ubuntu:
Ctrl + Alt + T).
Crea una cartella del progetto ed entraci
Esempio: MioProgetto dentro Documenti.
Windows — Prompt dei comandi:
cd %USERPROFILE%\Documents
mkdir MioProgetto
cd MioProgetto
Windows — PowerShell:
cd $env:USERPROFILE\Documents
mkdir MioProgetto
cd MioProgetto
macOS:
cd ~/Documents
mkdir MioProgetto
cd MioProgetto
Linux:
cd ~/Documents
mkdir -p MioProgetto
cd MioProgetto
Controllo: cd (Windows) o pwd (macOS/Linux) deve mostrare un percorso che finisce con MioProgetto.
💡 Trucco: digita
cd+ spazio, trascina la cartella nel terminale, Invio.
Passaggio 2 — Creare l’ambiente virtuale
Ordina a Python di creare la cartella-ambiente. Per convenzione si chiama .venv (il punto iniziale la tiene nascosta su Mac e Linux).
Windows:
python -m venv .venv
macOS / Linux:
python3 -m venv .venv
Aspetta qualche secondo. Il terminale spesso non restituisce alcun messaggio di successo: è normale. Nella cartella del progetto deve comparire una sottocartella .venv.
Se compare No module named venv o python/python3 non riconosciuto: Python non è installato correttamente (o non è nel PATH).
Passaggio 3 — Attivare l’ambiente (cruciale)
Creare la cartella non basta. Ora devi dire al terminale di “entrare” virtualmente in quella cartella e usare solo quel Python. Questa si chiama attivazione.
I comandi cambiano in base al sistema operativo e, su Windows, anche in base al tipo di shell:
| Sistema / Shell | Comando di attivazione | Note operative |
|---|---|---|
| Windows — Prompt dei comandi cmd.exe |
.venv\Scripts\activate.bat
|
È il percorso classico: se usi il Prompt nero tradizionale, questo è il comando da lanciare. |
| Windows — PowerShell pwsh / Windows PowerShell |
.venv\Scripts\Activate.ps1
|
Se compare un errore di policy di esecuzione, abilita gli script locali solo per la sessione corrente (vedi nota sotto). |
| macOS / Linux bash, zsh, fish |
source .venv/bin/activate
|
Su macOS e Linux il percorso è sempre sotto bin/, non sotto Scripts/. |
⚠️ Attenzione — PowerShell e Execution Policy: Se PowerShell rifiuta
Activate.ps1, nei miei test su Windows 10/11 basta (per la sola sessione corrente) eseguireSet-ExecutionPolicy -Scope Process -ExecutionPolicy Bypasse poi rilanciare l’attivazione. Evita di abbassare la policy a livello di macchina intera senza sapere perché.
Come capire se ha funzionato
Quando esegui il comando di attivazione corretto, il terminale cambia faccia: compare il nome della cartella tra parentesi all’estrema sinistra della riga in cui scrivi.
(.venv) a sinistra del prompt: segnale che l'ambiente isolato è attivo (qui su macOS dopo source .venv/bin/activate).
Da questo momento in poi, sei al sicuro: qualsiasi installazione con pip andrà dentro quella cartellina, non nell’installazione globale di Python.
Comando affidabile (dopo aver visto (.venv) nel prompt):
Windows:
python -m pip install nome-pacchetto
macOS / Linux:
python3 -m pip install nome-pacchetto
⚠️ Attenzione — Evita
pip installnudo: sul Mac (e a volte su Linux) digitare solopip install …può non fare nulla di utile, oppure usare unpipdiverso dal Python delvenv. Preferisci semprepython -m pip/python3 -m pip.
Passaggio 4 — Uscire dall’ambiente (disattivazione)
Quando hai finito di usare lo script o vuoi passare a un altro progetto, esci dalla “bolla” virtuale e riporta il terminale allo stato normale.
Su tutti i sistemi operativi basta digitare:
deactivate
Premendo Invio, il prefisso (.venv) sparisce dal terminale: sei tornato all’ambiente globale del computer.
🚨 Avviso critico — Mai spostare la cartella: Una volta creato, l’ambiente virtuale contiene percorsi assoluti legati a quella posizione sul disco. Se sposti o rinomini la cartella del progetto (es.
MioProgetto), l’ambiente si corrompe. La soluzione è semplice: cancella.venve ricreala da capo conpython -m venv .venv(opython3su macOS/Linux), poi riattivala.
Domande Frequenti (FAQ)
Cos’è un ambiente virtuale Python (venv) e a cosa serve?
È una cartella del progetto (di solito .venv) con un interprete e un set di pacchetti isolati. Così pip non sporca il Python di sistema e ogni progetto può avere versioni diverse delle stesse librerie senza conflitti.
Come creo e attivo un venv su Windows?
Nella cartella del progetto: python -m venv .venv, poi .venv\Scripts\activate. Se compare il prefisso (.venv) nel prompt, sei dentro. Per uscire: deactivate.
Come creo e attivo un venv su macOS o Linux?
python3 -m venv .venv, poi source .venv/bin/activate. Verifica con which python3 (deve puntare dentro .venv). Usa python3 -m pip install … con l’ambiente attivo. Per uscire: deactivate.
Devo usare un ambiente virtuale anche per script senza dipendenze pip?
Non è obbligatorio se usi solo la libreria standard, ma resta una buona abitudine: il giorno in cui aggiungi un pacchetto non rischi di installarlo “sul sistema”. Su Linux evita proprio i pip install globali (PEP 668).
Cosa faccio se sposto o rinomino la cartella del progetto e il venv si rompe?
Cancella .venv e ricrealo nella nuova posizione (python -m venv .venv / python3 -m venv .venv), riattivalo e reinstalla i pacchetti se avevi un requirements.txt. I path dentro il vecchio ambiente restano assoluti e non sopravvivono allo spostamento.
L’abitudine che ti salva
Creare un ambiente virtuale richiede letteralmente due comandi e pochi mega di spazio sul disco. Falla diventare un’abitudine automatica: ogni volta che crei una nuova cartella per un progetto o scarichi un nuovo programma Python locale, la prima cosa che fai è:
Windows:
python -m venv .venv
.venv\Scripts\activate
macOS / Linux:
python3 -m venv .venv
source .venv/bin/activate
Il tuo sistema operativo te ne sarà grato.
💡 Letture opzionali (non servono per finire questa guida): Terminale: comandi minimi per usare gli script di ai riparo (
cd,ls/dir, drag & drop) e Quando usare pip install e quando no.