martedì 3 dicembre 2013

Installazione di Python con Pyenv

Dopo aver visto come installare pyenv sul vostro sistema (se non l'avete fatto leggete il post, ci sono un po' di dipendenze da installare prima di procedere con le indicazioni che trovate qui), iniziamo finalmente ad usarlo per renderci ancora più facile e divertente la vita di sviluppatori Python.

Se vi state chiedendo perché mai pyenv dovrebbe avere tale effetto, allora non avete letto il post di presentazione di pyenv. Fatelo, vi aiuterà a chiarirvi le idee su cos'è e cosa fa.

In questo post vedremo invece come usare usare pyenv per installare una o più versioni di Python. Ma quali sono le versioni disponibili in pyenv? Chiedeteglielo:

pyenv install --list
Available versions:
  2.4
...
  2.4.6
  2.5
  2.5.1
...

  2.7.6
...
  3.3.3
  3.3-dev
...

  3.4.0b1
  3.4-dev
  jython-2.5.0
...
  pypy-1.5
...

  pypy3-2.1-beta1
  pypy3-2.1-beta1-src
...
  stackless-2.7.2
...

  stackless-3.3-dev
  stackless-dev


Come potete notare, nonostante la lista sia stata abbondantemente tagliata è comunque molto lunga. Si parte da Python 2.4 risalente al 2004, fino al 3.4 ancora in fase di sviluppo nel momento in cui scrivo, passando per versioni particolari come PyPy.

Fate attenzione: potrebbe accadere che sia stata rilasciata una nuova versione di Python eppure nella lista non c'è. Ci possono essere 2 motivi per cui questo accade:
  1. è già da un po' che avete installato pyenv sul vostro computer ed è ora di aggiornarlo;
  2. la nuova versione è stata appena rilasciata. In questo caso date prima il tempo all'autore di aggiornare pyenv su github e poi tornate al punto 1.
Negli esempi che seguono installerete:
  • Python 2.6.9;
  • Python 2.7.6;
  • Python 3.2.5;
  • Python 3.3.3.
Perché così tante versioni? Perché ci serviranno per vedere tutte le caratteristiche di pyenv nei prossimi post, sopratutto quella che è il suo punto di forza: l'enorme flessibilità e facilità con cui riesce a gestire contemporaneamente più versioni di Python.

Aprite una shell (terminale) e iniziamo con l'installazione di Python 2.7.6 che avverrà nella directory ~/.pyenv della vostra home:

pyenv install 2.7.6

In modo del tutto automatico partirà il dowload e poi la compilazione dei sorgenti Python:

Downloading Python-2.7.6.tgz...
Installing Python-2.7.6...


Mettetevi comodi: a seconda della velocità della vostra connessione Internet e la potenza del vostro sistema, potrebbero servire anche diversi minuti per completare l'installazione di Python.

Ne approfitto per ricordarvi che il download non avviene dal sito ufficiale di Python, bensì dal mirror dedicato di pyenv.

Terminata l'installazione riceverete il messaggio

Installed Python-2.7.6 to ~/.pyenv/versions/2.7.6

che vi indica cosa è stato installato (Python-2.7.6) e dove (~/.pyenv/versions/2.7.6), e automaticamente parte anche l'installazione del bonus offerto da pyenv.

Si tratta dell'installazione di pip, il gestore di pacchetti Python che dalla versione 3.4 è disponibile di default:

Downloading setuptools-1.4.tar.gz...
-> https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.tar.gz
Installing setuptools-1.4...

Installed setuptools-1.4 to ~/.pyenv/versions/2.7.6

Downloading pip-1.4.1.tar.gz...
-> https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz
Installing pip-1.4.1...

Installed pip-1.4.1 to ~/.pyenv/versions/2.7.6

Ora dovete informare pyenv dell'installazione del nuovo Python sul vostro sistema. Lo fate con il comando:

pyenv rehash

E con questo avete appena finito di installare Python 2.7.6. Facile, vero? Procedete allo stesso modo per installare anche Python 3.3.3 con il comando

pyenv install 3.3.3
pyenv rehash

poi proseguite con la 2.6.9 e la 3.2.5 e avete finito.

Pyenv è davvero potente e facile da usare! Potete finalmente installare tutte le versioni di Python che volete in pochi attimi. Potete pensare di usare finalmente sempre la versione più aggiornata senza doversi lanciare in compilazioni da sorgente litigando con dipendenze insoddisfatte, ne dovete aspettare che qualche anima pia, se c'è, crei i pacchetti per la vostra distribuzione e vi cavi d'impaccio.

Ma sopratutto, potete fare tutto senza andare a interferire con i file di sistema della vostra distribuzione che resta li intonsa e lontana dal pericolo di malfunzionamenti.

Nel prossimo post vedremo come usare pyenv per configurare una o più versioni di Python per poterle usarle nello sviluppo dei vostri programmi.