Python pratico

Ambienti virtuali Python (venv) in 5 minuti

7 min di lettura
Macro di tastiera meccanica scura con un tasto illuminato in arancione che mostra la legenda (.venv)
Windows macOS Linux
Immagine generata: Alex Lunalbi · Gemini · ai riparo

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 modulo venv è 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

  1. Tasto Windows → digita cmd oppure powershell → Invio.

macOS

  1. Cmd + Spazio → digita Terminale → Invio.

Linux

  1. 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) eseguire Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass e 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.

Terminale macOS con (.venv) attivo dopo python3 -m venv e source .venv/bin/activate
Prefisso (.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 install nudo: sul Mac (e a volte su Linux) digitare solo pip install … può non fare nulla di utile, oppure usare un pip diverso dal Python del venv. Preferisci sempre python -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 .venv e ricreala da capo con python -m venv .venv (o python3 su 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.

Alex Lunalbi

Alex Lunalbi

Security & privacy

Dona su PayPal

Scrivo di sicurezza digitale pratica e codice IA. Su ai riparo ogni procedura è verificata su macchine reali.

Tag
  • python,
  • venv,
  • terminale,
  • programmazione