Pubblicità

Virtual Environment in Python: cos’è, a cosa serve e come si crea (con codice)

In questo articolo vediamo un aspetto operativo del lavoro di un Data Scientist, andando a vedere cos’è un Virtual Environment in Python, a cosa serve e come crearlo.

Virtual Environment in Python
Photo from Pixabay

Come ben sappiamo, Python è sicuramente il linguaggio che va per la maggiore nel mondo della Data Science. Oltre alle nozioni di programmazione, conviene anche essere familiare con ambienti, concetti e tool che lo toccano lateralmente o trasversalmente.

Uno di questi concetti da studiare bene è quello di Virtual Environment in Python.

Andiamo quindi a vedere:

  • Cos’è un Virtual Environment
  • A cosa serve un Virtual Environment
  • Come si crea un Virtual Environment in Python

Cos’è un Virtual Environment

Un Virtual Environment in Python è un’installazione isolata e indipendente di moduli Python. Come suggerisce il nome, si tratta di un ambiente virtuale, come suggerisce il nome, che ci permette di installare ogni libreria che vogliamo.

A livello pratico, un Virtual Environment, o virtualenv, è una cartella dentro la quale verranno installate le librerie di interesse.

A cosa serve un Virtual Environment

Un V.E. ti permette di sviluppare progetti Python senza preoccuparti delle dipendenze di altri progetti.

Immagine di avere due progetti, uno in cui stai sviluppando una pipeline di Machine Learning e uno in cui stai sviluppando una web app per rendere i tuoi risultati pubblici.

E’ possibile che alcune delle librerie dei due progetti vadano in conflitto, che per esempio una richieda una certa versione di una libreria che però è incompatibile con l’altro progetto.

Un virtualenv ti permette di gestire questi casi, creando un ambiente in cui ogni progetto può avere le sue librerie e i suoi requisiti senza rischiare di andare in conflitto.

Questo escamotage risulta davvero molto importante, non solo quando si lavora in parallelo su più progetti, ma anche (e soprattutto) quando si riprendono progetti vecchi o si fanno update.

Se ogni progetto non ha il proprio virtual environment, l’errore è sempre dietro l’angolo e potrebbe rendere inutilizzabile il codice che prima funzionava perfettamente.

Come si crea un Virtual Environment in Python

In Python esistono molti modi per creare virtual environment, ma ce ne sono due che vanno per la maggiore: virtualenv e conda.

Vediamo per ognuno di questi come posso creare un virtual environment in Python.

virtualenv

Virtualenv è un pacchetto che permette di creare degli ambienti Python isolati, e quindi dei virtual envs. Crea una cartella che contiene tutti i file utili al funzionamento di Python con le librerie desiderate.

Se vuoi qualche informazione ulteriore, ti invito a visitare la sua repo ufficiale: https://github.com/pypa/virtulenv.

Per prima cosa naturalmente dobbiamo installare il pacchetto:

pip install virtualenv

Poi possiamo effettivamente creare il virtual environment:

virtualenv --no-site-packages nome_mio_virtual_env

nome_mio_virtual_env sarà il nome che io voglio assegnare al mio env. Posso naturalmente scegliere un nome che sia attinenti al progetto che sto sviluppando.

Per entrare nell’ambiente, lo dovrò attivare:

source nome_mio_virtual_env/bin/activate

Una volta attivato, potrò lavorarci dentro, installare le librerie che voglio e non preoccuparmi delle dipendenze.

L’idea è quella di entrare ed uscire da una cartella che contiene i file eseguibili e i python necessari per il mio progetto. Nel momento in cui vorrò uscire, mi basterà digitare:

deactivate

Se voglio cancellare l’env, potrò andare nel path dove risiede e cancellare semplicemente la cartella con il nome dell’env.

conda

Conda è un altro tool che fa da environment manager per molti linguaggi, tra cui Python. Se ti interessa saperne di più, vai pure qui: https://docs.conda.io/projects/conda/en/latest/.

Anche in questo caso creare un virtual environment è molto semplice:

conda create --name nome_mio_virtual_env

Una volta creato, anche in questo caso dovrò attivarlo:

source activate nome_mio_virtual_env

Identiche le procedure di deattivazione:

source deactivate

Conclusioni

In questo articolo abbiamo visto cos’è un Virtual Environment in Python, a cosa serva e come lo possiamo creare (con codice).

Per quest’ultima parte ci siamo soffermati su due environment manager: virtualenv e conda.

Questo articolo fa parte della sezione TUTORIAL del nostro sito, se ti interessa approfondire questi argomenti, clicca qui. Per Python nello specifico invece, abbiamo realizzato un corso che trovi qui.

Se ti è piaciuto l’articolo, continua a leggere su Pulp Learning!

Pubblicità