Ambiente virtuale
A cosa serve un ambiente virtuale
Sezione intitolata “A cosa serve un 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.
Cos’è un ambiente virtuale?
Sezione intitolata “Cos’è un ambiente virtuale?”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.
Creare un ambiente virtuale
Sezione intitolata “Creare un ambiente virtuale”Python include già il modulo venv per creare ambienti virtuali. Nella cartella del tuo progetto, esegui:
python -m venv venvIl comando crea una sottocartella chiamata venv con il necessario. Puoi scegliere un altro nome, ma venv e .venv sono le convenzioni più comuni.
Attivare l’ambiente virtuale
Sezione intitolata “Attivare l’ambiente virtuale”Prima di usarlo, devi “attivarlo”:
Su macOS e Linux:
source venv/bin/activateSu Windows:
venv\Scripts\activateQuando l’ambiente è attivo, il nome appare all’inizio del prompt del terminale:
(venv) $Da quel momento, pip install installerà le librerie solo in questo ambiente, non nel sistema globale.
Disattivare l’ambiente virtuale
Sezione intitolata “Disattivare l’ambiente virtuale”Quando hai finito di lavorare al progetto:
deactivateIl prompt torna alla normalità, senza (venv).
Flusso di lavoro tipico
Sezione intitolata “Flusso di lavoro tipico”Ecco la sequenza completa per un nuovo progetto:
# 1. Crea la cartella del progettomkdir mio-progettocd mio-progetto
# 2. Crea l'ambiente virtualepython -m venv venv
# 3. Attivalosource venv/bin/activate # macOS/Linux# venv\Scripts\activate # Windows (alternativa)
# 4. Installa le librerie necessariepip install requests pandas
# 5. Lavora sul progetto...
# 6. Salva le dipendenze in un file per condividerlepip freeze > requirements.txtRipristinare un progetto su un altro computer
Sezione intitolata “Ripristinare un progetto su un altro computer”Quando qualcuno riceve il tuo progetto (o tu stesso lo riapri su un altro computer):
python -m venv venvsource venv/bin/activatepip install -r requirements.txt # Installa tutte le librerie elencate nel fileNon aggiungere venv a Git
Sezione intitolata “Non aggiungere venv a Git”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__/*.pycStrumenti alternativi (per il futuro)
Sezione intitolata “Strumenti alternativi (per il futuro)”| 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.
Verificare dove sei
Sezione intitolata “Verificare dove sei”# Su macOS/Linux: mostra quale Python sta usandowhich python
# Su Windows: mostra quale Python sta usandowhere python
# Mostra le librerie installate nell'ambiente attivopip list