venerdì 13 dicembre 2013

Configurazione di Python tramite pyenv a livello di shell

Nel post precedente ci siamo occupati della configurazione di Python con pyenv a livello locale, cioè della versione di Python da avviare al livello di una specifica directory.

In questo post invece ci occupiamo dell'ultima e più specifica di tutte le impostazioni che pyenv vi permette, quella a livello di shell (terminale): grazie ad essa potete specificare quale versione di Python usare a livello di ogni singolo terminale che aprite sul vostro sistema.

Lo fate tramite il comando

pyenv shell 3.3.3

che ad esempio imposta l'uso di Python 3.3.3 per la sola shell corrente, sovrascrivendo quindi sia le impostazioni a livello globale, sia a livello locale eventualmente già configurate.

Come sempre si possono impostare più versioni di Python contemporaneamente con

pyenv shell 2.7.6 3.3.3

mentre

pyenv shell

senza ulteriori indicazioni restituisce le versioni di Python attive nella shell corrente:

2.7.6:3.3.3

Non si tratta di un errore, le versioni attive in questo caso sono visualizzati in questo modo un po' diverso dal solito.

Le impostazioni valgono per quella shell finché resta aperta. Una volta chiusa tutte le impostazioni andranno perse e resteranno attive solo quelle globali e locali perché queste sono registrate su file, rispettivamente nel file ~/.pyenv/version per quella globale, e nel file .pyenv-version della directory corrente per quella locale.

Se volete annullare le impostazioni fatte finora senza chiudere la shell usate

pyenv shell --unset

e riprenderanno a funzionare le impostazioni locali se precedentemente configurate, altrimenti quella globale.