Python - virtualenv

Python

Il modulo virtualenv permette la creazione di ambienti virtuali separati, con la propria versione di python e di pip. Creando ambienti separati, gli sviluppatori possono mantenere isolati i requisiti delle singole applicazioni, senza dover "sporcare" la cartella site-packages in cui sono installati globalmente i moduli python.
In questo breve articolo vedremo come installare e utilizzare virtualenv, accopiato con il modulo virtualenvwrapper che contiene una serie di funzioni e metodi per migliorare l'usabilità di virtualenv.

Installazione

Prima di tutto, se non aveste il package manager pip installato e utilizzate un sistema operativo Linux, digitate il seguente comando:
sudo apt-get install python-pip python-dev build-essential

Adesso procediamo all'installazione di virtualenv
pip install virtualenv

Se tutto è andato a buon fine, digitiamo il seguente comando per vedere la versione di virtualenv appena installata:
virtualenv --version

Creare un ambiente python virtuale

Come era stato spiegato nell'articolo introduttivo per django, per creare un ambiente virtuale python spostiamoci nella cartella del nostro progetto e digitiamo:
virtualenv ENV_NAME
Così facendo, sarà creata una cartella ENV_NAME contenente una copia degli eseguibili di python e di pip.
Per attivare l'ambiente virtuale ENV_NAME, spostatevi in ENV_NAME/bin/ e digitate:
source activate
A conferma del comando, dovreste vedere nel terminale il nome dell'ambiente tra parentesi accanto al vostro nome utente.
Per uscire dall'ambiente, digitate:
deactivate

Gestione pacchetti

Una volta attivato l'ambiente virtuale, possiamo utilizzare pip install per installare i moduli che ci servono, nelle versioni desiderate.
Ipotizziamo di voler creare una applicazione web django che utilizzi mongodb per lo storage.
Seguendo questa guida, viene utilizzata una versione precedente di django rispetto a quella attualmente stabile. Possiamo perciò creare un ambiente virtuale django_mongodb all'interno del quale installare i seguenti moduli:
pip install git+https://github.com/django-nonrel/django@nonrel-1.5
pip install git+https://github.com/django-nonrel/djangotoolbox
pip install git+https://github.com/django-nonrel/mongodb-engine
Adesso abbiamo i tre pacchetti installati nel nostro ambiente virtuale. Se volessimo replicare le dipendenze in un altro ambiente virtuale, ci basta creare un file requirements.txt con il comando:
pip freeze > requirements.txt
Una volta ottenuto il file di testo, potete spostarlo in un nuovo ambiente virtuale, magari gestito da un vostro collega, ed installare gli stessi pacchetti con il comando:
pip instal -r requirements.txt

Scorciatoie

In coppia con virtualenv, si consiglia l'installazione del modulo virtualenvwrapper che contiene una sere di utilities per facilitare la gestione degli ambienti virtuali python.
Per installare virtualenvwrapper:
pip install virtualenvwrapper

Organizzazione degli ambienti virtuali

Grazie a virtualenvwrapper possiamo mantenere gli ambienti virtuali python all'interno di un'unica cartella, invece che sparsi per i nostri progetti.
Se per esempio volessimo salvare gli ambienti nella directory Envs della nostra home, digitiamo:
export WORKON_HOME=~/Envs
mkdir -p $WORKON_HOME
source /usr/local/bin/virtualenvwrapper.sh
L'ultimo comando potrebbe fallire se avete installato python in un path differente.

Creazione degli ambienti virtuali

Ora che abbiamo definito dove saranno salvati gli ambienti, utilizziamo il comando mkvirtualenv di virtualenvwrapper per creare il nostro ambiente ENV_NAME:
mkvirtualenv ENV_NAME
Adesso, in qualsiasi posizione del sistema ci troveremo, potremo digitare il comando workon ENV_NAME per attivare l'ambiente virtuale ENV_NAME. Anche in questo caso, è utilizzato il comando deactivate per uscire.

Termina qui la nostra mini-guida virtualenv, un tool utilissimo per chi lavora in python. Per qualsiasi dubbio, domanda o precisazione, vi invitiamo come sempre a lasciare un commento.

Fonti

Alessio Antonielli

Ingegnere informatico, appassionato di cinema, musica, videogiochi e serie tv. Insomma, le solite cose che vi aspettereste da un ex studente di Ingegneria Informatica, giusto per rafforzare lo stereotipo…

Python - virtualenv ultima modifica: 2017-07-12T11:56:00+01:00 da Alessio Antonielli


Advertisment ad adsense adlogger