Ecco una guida sciué sciué per imparare a creare e utilizzare ambienti virtuali su Python! 🐍
Per farlo utilizzeremo il potentissimo virtualenv. 💪
Ti riepilogo subito i tre comandi essenziali per creare, attivare e disattivare l’environment:
1. crea >
virtualenv env
2. attiva >
source env/bin/activate
3. disattiva >
deactivate
Non ti occorrerà niente di più per iniziare. 😉
Continua a leggere qui sotto, però, per capire meglio il funzionamento di uno dei tool più utilizzati dai pythonisti di tutto il mondo.👇
1. Cosa è virtualenv
2. Creare e attivare il virtual environment per Pyhton
3. Disattivare l’ambiente virtuale
4. Salvataggio delle dipendenze per altre installazioni
Cosa è virtualenv
virtualenv
è uno strumento che serve a isolare e gestire ambienti di sviluppo separati.
Con virtualenv puoi creare diversi ambienti virtuali distinti con relative dipendenze e pacchetti PyPI di terze parti.
Tutto questo, compresa l’esatta versione Python che utilizzi, finisce sotto una directory di ambiente (il cui percorso è personalizzabile).
I vantaggi sono facilmente comprensibili:
- qualsiasi applicazione A, che richiede un modulo Pippo versione 1.0, non andrà in conflitto con l’installazione a sistema della versione B, che richiede il modulo Pippo alla versione 0.8
- operazioni di aggiornamento dei moduli saranno limitate all’ambienta virtuale specifico e non andranno a impattare su tutti gli altri applicativi Python presenti a sistema.
Installare virtualenv
La procedura di installazione di virtualenv dipende dalla distribuzione Linux sulla quale lavori.
Su Ubuntu è immediata lanciando il solito
sudo apt install virtualenv
Ricordati di installare anche PyPI, ti servirà per i moduli e pacchetti aggiuntivi.
Per installare virtualenvs su Windows, invece, hai bisogno di installare in primis proprio PyPI.
Questi i passaggi con cui Google risponde alla domanda “come installo Python Virtualenv su Windows?”:

Per installare virtualenv su Windows segui i primi tre passaggi: 1. apri la Power Shell (o la console di comando) con permessi da amministratore 2. lancia il comando
pip install virtulenv
3. lancia il comando
install virtulenvwrapper-win
(ricorda di installare prima PyPI per la gestione dei pacchetti pip!)
A seguire riporterò i comandi di attivazione e gestione del tool su OS Linux.
Se utilizzi un sistema operativo Windows ti consiglio di dare uno sguardo a questo tutorial specifico su Youtube.
Creare e attivare il virtual environment per Python
Procediamo quindi alla creazione della sandbox .
Crea un cartella nella quale inserirai tutto il tuo progetto, spostati su di essa, e lancia il comando:
virtualenv env
Pochi secondi e il sistema raccoglierà tutto ciò di cui a bisogno proprio sotto la directory env.
env sta ovviamente per “environment”, ambiente.
Note bene: non sei obbligato a utilizzare questo nome.
Convenzionalmente si tende a chiamare la cartella env o venv, ma non è assolutamente un obbligo.
Considera, insomma, che puoi sostituire env con qualsiasi altra parola a tuo piacimento.
Prova a curiosare sotto la directory appena creata dal comando.
Ti renderai subito conto che lì sotto ci sono finiti un bel po’ di file di sistema, compresa l’installazione di Python. 😉
Non resta ora che attivare l’ambiente per fare in modo che possa essere utilizzato.
Facilissimo, lancia il comando:
source env/bin/activate/
et voilà, sei pronto a sviluppare nel tuo confortevole ambiente isolato:
l’env tra parentesi a terminale, prima del nome utente e postazione, sta proprio a indicare che l’ambiente env è attivo e in esecuzione.
Ora puoi installare tutti i moduli di cui hai bisogno proprio tramite PyPI:
Finché l’ambiente è attivo i moduli PyPI non saranno installati nella cartelle di sistema, ma sotto env.
⚠️ Quando utilizzi pip ricorda comunque che non è mai una buona idea utilizzare i permessi di amministratore! ⚠️
Disattivare l’ambiente virtuale
Per uscire dall’ambiente virtuale e tornare a quello di sistema il comando è banale:
deactivate
La shell ti indicherà immediatamente della disattivazione dell’ambiente rimuovendo l’indicazione
(env)
:
Salvataggio delle dipendenze per altre installazioni
Sai a cosa serve il comando
pip freeze
?
Genere un output con un riepilogo di tutte le dipendenze installate a sistema.
Nel caso dell’ambiente virtuale attivo andrà, ovviamente, a elencare le sole dipendenze installate sull’ambiente stesso:
La cosa può essere parecchio comoda quando ti trovi a dover spostare il progetto di una applicazione da una macchina all’altra.
O quando lo devi distribuire, per esempio su Github.
Se ci fai caso su Github tutte le app scritte in Python sono accompagnate da un file chiamato
requirements.txt
.
È il file che elenca tutte le dipendenze necessarie al funzionamento di quell’applicazione.
Se sei sul tuo virtual environment e vuoi esportare in un file di testo tutte le dipendenze pip installate dai il comando:
pip freeze > requirements.txt
In questo modo salverai, questa volta sul file
requirements.txt
, lo stesso contenuto del primo output che ti ho illustrato.
Ora ti basta spostare il file di testo appena creato su un nuovo ambiente virtuale.
Per installare i medesimi pacchetti dell’ambiente di provenienza il comando è semplicemente:
pip install -r requirements.txt
Come avrai notato il comando
freeze
si occuperà di esportare anche le versioni di ogni singola dipendenza.
Puoi dormire sogni tranquilli, quindi.
Ora sai come replicare in modo perfetto e veloce i tuoi ambienti virtuali, e non imbatterti mai in problemi di compatibilità.
L’immagine di apertura dell’articolo è di Mitch Fournier.
