Come gestire l'ambiente virtuale di Python (venv)
Come gestire l'ambiente virtuale di Python (venv) in Windows 10/11
Inizio
1 - Inizio configurazione
Windows 10 / 11
1.1 - Creare cartella con nome: "prove"
1) Andare in "Documenti" 2) Fare clic destro su "Nuovo" e poi su "Cartella" 3) Immettere nome: "prove" 4) Aprire il terminale con tasto destro e selezionare la voce "Apri terminale" (o "Apri nel Terminale")
2 - Creazione dell’ambiente virtuale
python -m venv .venv --upgrade-deps
Cos'è Un ambiente virtuale è una copia isolata dell'interprete Python e delle sue librerie. Permette di installare pacchetti specifici per un progetto senza influenzare altri progetti o il sistema globale.
Spiegazioni
python -m venv: esegue il modulovenvincluso in Python per creare un ambiente virtuale..venv: è il nome della cartella che verrà creata (il punto iniziale la rende nascosta in alcuni sistemi).--upgrade-deps: aggiorna automaticamente i pacchetti di base (pip,setuptools,wheel) all'ultima versione durante la creazione.
3 - Attivazione dell’ambiente virtuale
.\.venv\Scripts\Activate.ps1
Non serve dare permessi di esecuzione
Cos'è L'attivazione configura il terminale corrente per utilizzare l'interprete Python e le librerie presenti nell'ambiente virtuale invece di quelle globali.
Spiegazioni
.\.venv\Scripts\Activate.ps1: esegue lo script PowerShell di attivazione situato nella cartellaScriptsdell'ambiente virtuale.- Dopo l'attivazione, vedrai il nome dell'ambiente tra parentesi nel prompt, ad esempio:
(.venv) PS C:\Users\...\prove> - Da questo momento, tutti i comandi
pythonepipfaranno riferimento all'ambiente virtuale.
4 - Aggiornamento degli strumenti di base
python -m pip --no-cache-dir install -U pip setuptools wheel
Cos'è Questi sono gli strumenti fondamentali per gestire i pacchetti Python:
- pip: gestore dei pacchetti Python.
- setuptools: strumento per costruire e distribuire pacchetti.
- wheel: formato moderno per la distribuzione di pacchetti Python.
Spiegazioni
python -m pip: esegue pip attraverso l'interprete Python attivo (nell'ambiente virtuale).--no-cache-dir: non salva i file scaricati nella cache locale, risparmiando spazio su disco.install -U: installa o aggiorna (-U=--upgrade) i pacchetti specificati.pip setuptools wheel: i tre pacchetti da aggiornare.
5 - Installazione delle librerie principali
pip --no-cache-dir install numpy pillow requests
Cos'è Queste sono librerie di terze parti che estendono le funzionalità di Python:
- numpy: libreria per il calcolo numerico e operazioni su array/matrici.
- pillow: libreria per l'elaborazione e manipolazione delle immagini.
- requests: libreria per effettuare richieste HTTP e interagire con servizi web/API.
Spiegazioni
pip: comando per installare pacchetti.--no-cache-dir: evita di salvare i file temporanei nella cache.install: azione di installazione.numpy pillow requests: nomi dei pacchetti da installare.
6 - Cancellare modulo
Per rimuovere un singolo pacchetto:
pip uninstall <nome_pacchetto>
Esempio:
pip uninstall numpy
Spiegazioni
pip uninstall: comando per disinstallare un pacchetto.<nome_pacchetto>: nome del pacchetto da rimuovere.- Verrà richiesta conferma prima della rimozione (premere
yper confermare).
7 - Dove trovare altre librerie
Cos'è PyPI (Python Package Index) è il repository ufficiale dei pacchetti Python. Qui puoi cercare, esplorare e scaricare migliaia di librerie create dalla comunità.
8 - Installazione di librerie da sorgente
python setup.py build
python setup.py install
Cos'è Alcuni pacchetti non sono disponibili su PyPI o richiedono un'installazione manuale dai file sorgente. Questo metodo compila e installa il pacchetto direttamente dal codice sorgente.
Spiegazioni
python setup.py build: compila il pacchetto preparando i file necessari.python setup.py install: installa il pacchetto compilato nell'ambiente Python attivo.- ⚠️ Nota: questo metodo è considerato obsoleto. Oggi si preferisce usare
pip install .opip install -e .per installare da sorgente.
8.1 - Cancellazione libreria
pip uninstall pillow
Cos'è Comando per rimuovere completamente un pacchetto installato dall'ambiente virtuale.
Spiegazioni
pip uninstall: avvia la procedura di disinstallazione.pillow: nome del pacchetto da rimuovere.- Il comando chiederà conferma; aggiungere
-yper saltare la conferma:
<code>bash
pip uninstall pillow -y
</code>`
9 - Gestione delle librerie
9.1 - Salva un elenco delle librerie installate
pip freeze > requirements.txt
Cos'è Genera un file di testo che contiene tutti i pacchetti installati con le relative versioni esatte.
Spiegazioni
pip freeze: elenca tutti i pacchetti installati nel formatopacchetto==versione.>: reindirizza l'output in un file.requirements.txt: nome del file creato. Questo file può essere condiviso con altri sviluppatori per replicare lo stesso ambiente.
Esempio di contenuto di requirements.txt:
numpy==1.24.3
pillow==9.5.0
requests==2.31.0
9.2 - Disinstalla tutte le librerie
pip uninstall -r requirements.txt -y
Cos'è
Rimuove tutti i pacchetti elencati nel file requirements.txt.
Spiegazioni
pip uninstall: comando di disinstallazione.-r requirements.txt: legge la lista dei pacchetti dal file specificato.-y: conferma automatica senza chiedere interazione.
⚠️ Attenzione: questo comando rimuove solo i pacchetti elencati, non l'ambiente virtuale stesso.
9.3 - Reinstalla le librerie
pip install -r requirements.txt
Cos'è
Installa tutti i pacchetti elencati nel file requirements.txt con le versioni specificate.
Spiegazioni
pip install: comando di installazione.-r requirements.txt: legge la lista dei pacchetti e le versioni dal file.- Utile per ricreare rapidamente lo stesso ambiente su un altro computer o dopo una reinstallazione.
10 - Uscire dall’ambiente virtuale
deactivate
Cos'è Comando per disattivare l'ambiente virtuale e tornare a utilizzare l'interprete Python globale.
Spiegazioni
deactivate: ripristina le variabili d'ambiente originali.- Il prompt tornerà al formato normale senza il prefisso
(.venv). - I comandi
pythonepipfaranno nuovamente riferimento all'installazione globale di Python.
11 - Eliminare l’ambiente virtuale
Remove-Item .venv -Recurse -Force
Cos'è Comando PowerShell per eliminare completamente la cartella dell'ambiente virtuale e tutto il suo contenuto.
Spiegazioni
Remove-Item: cmdlet PowerShell per eliminare file o cartelle..venv: nome della cartella da eliminare.-Recurse: elimina anche tutte le sottocartelle e i file contenuti.-Force: forza l'eliminazione senza chiedere conferma, anche per file protetti.
⚠️ Attenzione: questa operazione è irreversibile. Assicurati di aver salvato eventuali dati importanti prima di procedere.
12 - Riepilogo dei comandi
| Azione | Comando |
|---|---|
| Creare ambiente virtuale | python -m venv .venv --upgrade-deps |
| Attivare ambiente virtuale | .\.venv\Scripts\Activate.ps1 |
| Aggiornare strumenti base | python -m pip --no-cache-dir install -U pip setuptools wheel |
| Installare librerie | pip --no-cache-dir install numpy pillow requests |
| Disinstallare un pacchetto | pip uninstall <nome_pacchetto> |
| Salvare lista librerie | pip freeze > requirements.txt |
| Disinstallare tutte le librerie | pip uninstall -r requirements.txt -y |
| Reinstallare librerie | pip install -r requirements.txt |
| Disattivare ambiente | deactivate |
| Eliminare ambiente virtuale | Remove-Item .venv -Recurse -Force |