Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

pyenv: gestire più versioni di python su Linux

Link copiato negli appunti

Durante lo sviluppo di uno o più progetti può capitare di dover gestire multiple versioni delle librerie di un determinato linguaggio, ad esempio ci sono software che funzionano solo con alcune versioni di Python. Nell'articolo vi parleremo di un utilissimo tool chiamato Pyenv che permette di gestire varie release di questo linguaggio installate nello stesso sistema, in modo da poterle utilizzare selettivamente per sviluppare e testare il proprio progetto.

Con pyenv è possibile:

  • il passaggio automatico tra la versione standard di Python con una versione scelta dall'utente;
  • impostare una release specifica di Python come predefinita per il sistema;
  • gestione automatizzata degli ambienti virtuali creati tramite anaconda o virtualenv;
  • sovrascrittura dell'ambiente Python predefinito con uno dinamico;
  • ricerca dei comandi delle varie versioni di Python

Solitamente quando si installano le librerie Python quella versione diventa quella predefinita per il sistema e quindi viene sfruttata per eseguire le applicazioni che necessitano di tali librerie per funzionare. Pyenv sfrutta invece degli shims, eseguibili che prendono il posto della versione predefinita. Pyenv andrà quindi ad indicare al sistema quale versione di Python utilizzare di volta in volta, invocando appunto gli shims, a seconda delle indicazioni dell'utente.

pyenv

Sostanzialmente gli shims vengono inseriti dentro delle directory, nella PATH dell'utente, così che pyenv possa intercettate i comandi inviati ed invocare la giusta versione di Python che l'utente ha precedentemente indicato.

Vediamo ora come installare e pyenv e gestire varie versioni di Python. Prima di tutto installiamo alcuni pacchetti necessari:

sudo apt install curl git-core gcc make zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libssl-dev

adesso scarichiamo e compiliamo il codice sorgente di pyenv:

git clone https://github.com/pyenv/pyenv.git $HOME/.pyenv

ora impostiamo Pyenv in modo che possa intercettare i comandi ed impostare la giusta versione di Python, modifichiamo dunque le nostre impostazioni della bash:

vim $HOME/.bashrc

e copiamo questa configurazione:

## pyenv configs
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init -)"
fi

dunque riavviamo bash:

exec "$SHELL"

Adesso potremo gestire tutte le versioni di Python che desideriamo, possiamo quindi provare a visualizzare quelle installate tramite questo comando:

pynev versions

Ed installare nuove versioni cosi:

pyenv install 3.X.Z

Per visualizzare le versioni di Python disponibili per l'installazione lanceremo invece:

pynev install -l

Possiamo anche visualizzare la versione di Python usata dal sistema:

pyenv global

e settare quella che desideriamo a secondo della directory:

$ cd python_projects/test
$ pyenv local 3.6.5
$ pyenv version

Via pyenv

Ti consigliamo anche