Perchè usare un ambiente virtuale per programmare in python

AI, INFORMATICA

Se state leggendo questo articolo, immagino che vi sia già capitato di lavorare su qualche progetto python e rendervi conto che, per problemi di incompatibilità  delle librerie e/o dell’ambiente di sviluppo, l’unica via di  soluzione era dover fare un upgrade o un downgrade della stessa o dell’ambiente, consapevoli della criticità dell’operazione e degli impatti su altri progetti. Se vi è successo sappiate che si può ovviare a queste problematiche semplicemente usando Pyenv.

Pyenv permette di gestire diverse release di python installate sullo stesso sistema, in modo da poterle utilizzare selettivamente per sviluppare e testare il proprio progetto.

Con Pyenv infatti è possibile:

  • effettuare il passaggio automatico tra la versione di sistema di Python con una versione definita dall’utente per il progetto;
  • gestire automaticamente gli ambienti virtuali creati tramite anaconda o virtualenv
  • sovrascrivere l’ambiente Python predefinito con uno dinamico;
  • ricercare dei comandi delle varie versioni di Python

Dobbiamo tenere presente che quando si installano le librerie Python sul sistema , la versione installata diventa quella predefinita e quindi quella che verrà usata  dalle applicazioni che necessitano di tali librerie per funzionare. Per evitare incongruenze di versione Pyenv ha introdotto il concetto  degli shims,che sostituiscono / deviano le chiamate verso l’ambiente protetto dove sono configurate le librerie e le dipendenze corrette. Pyenv in sostanza indicherà al sistema quale versione di Python utilizzare di volta in volta, invocando appunto gli shims, a seconda delle indicazioni dell’utente.

 Esempio di utilizzo di Pipenv

Vediamo cosa possiamo fare per isolare un nuovo progetto.

Il primo step è di creare un repository ed accedervi via shell:

$ cd myproject

A questo punto sarà necessario lanciare la Pipenv shell:

$ pipenv shell

e  scegliere la versione di python da utilizzare per l’ambiente.

Impostare per il progetto una specifica versione di Python

Per creare una virtualenv ed impostare per il progetto selezionato una  specifica versione di  Python che dovrà, comunque, essere installata nel sistema e correttamente configurata nel PATH, potrete usare i seguenti comandi :

supponiamo di volere impostare   Python 3 :

$ pipenv --python 3

o una versione specifica quale  Python3.5:

$ pipenv --python 3.5

o Python 2.7.14:

$ pipenv --python 2.7.14

per verificare la versione utilizzata per il progetto, sarà come sempre sufficiente lanciare

$ python --version

Il secondo step sarà quello di aggiungere i pacchetti necessari al progetto  utilizzando pipenv in sostituzione del pip di sistema :

$ pipenv install <package>

Questa procedura creerà un Pipfile, se già non esistente, all’interno del vostro progetto e nel caso già esistesse l’operazione andrà a modificare il pipfile con i nuovi pacchetti installati.

Il  Pipfile generato dovrebbe avere una forma di questo tipo.

[[source]]

url = "https://pypi.python.org/simple"

verify_ssl = true

[dev-packages]

[packages]

[requires]

python_version = "3.6"

Ogni qualvolta verrà lanciata la pip shell, pipenv automaticamente verificherà la versione corrispondente di python di sistema.

Se vuoi farmi qualche richiesta o contattarmi per un aiuto riempi il seguente form

    Comments