Python Package Index: facile, con PIP
Gli sviluppatori Python possono attingere dal Python Package Index (PyPI) ad una vasta quantità di moduli aggiuntivi non inclusi nella distribuzione standard (al momento in cui scrivo PyPI ne conta 12874). Per gestire tali pacchetti è conveniente usare il programma pip che consente, tra le altre cose, di installare i moduli del PyPI con una semplice linea di comando.
Innanzitutto bisogna installare pip:
Ubuntu
sudo aptitude install python-pip
Fedora
su -c 'yum install python-pip'
Altrove
easy_install pip
Tra le altre cose, pip funziona ottimamente in combinazione con virtualenv, consentendo così di installare tutti i moduli desiderati su un ambiente replicato senza toccare l’installazione principale di Python.
Vediamo ora un esempio dell’uso di pip. Supponiamo di essere degli anglosassoni superstiziosi e di voler assolutamente sapere quale sarà il prossimo venerdì 13: potremmo metterci a sfogliare il calendario o, più fruttuosamente, il Python Package Index. All’interno di quest’ultimo infatti c’è il modulo FridayThe13th che fa proprio al caso nostro, quindi installiamolo!
(ToastedTech)[rnd@turing ~]$ pip install FridayThe13th Downloading/unpacking FridayThe13th Downloading FridayThe13th-1.0.0.tar.gz Running setup.py egg_info for package FridayThe13th Installing collected packages: FridayThe13th Running setup.py install for FridayThe13th Successfully installed FridayThe13th Cleaning up...
Funzionerà? Vediamo:
(ToastedTech)[rnd@turing ~]$ python -c 'from FridayThe13th import *; phobia(2012)' Dates to remember: 2011-05-13
La comodissima funzione phobia, del modulo FridayThe13th, funziona e ci ricorda che dovremo guardare con terrore al prossimo 13 maggio 2011 perché sarà un venerdì 13!
Tra le altre cose, pip è in grado di cercare moduli:
(ToastedTech)[rnd@turing ~]$ pip search twitter feed2twitter - Publish your feed items to twitter twitter - An API and command-line toolset for Twitter (twitter.com) mitter - Update your Twitter status django-oauth-twitter - A Django application that lets you associate Twitter accounts with your User accounts [...]
Per ottenere una lista dei moduli installati basta usare il comando freeze di pip:
(ToastedTech)[rnd@turing ~]$ pip freeze distribute==0.6.14 wsgiref==0.1.2
Salvando l’output di pip freeze in un file di testo (basta una semplice redirezione) è possibile usare quest’ultimo per replicare la lista dei moduli di un’installazione virtuale in un’altra con un singolo comando:
(NUOVO)[rnd@turing ~]$ pip install -r lista_moduli.txt Downloading/unpacking distribute==0.6.14 (from -r lista_moduli.txt (line 1)) [...] Successfully installed distribute Cleaning up... Requirement already satisfied (use --upgrade to upgrade): wsgiref==0.1.2 in /usr/lib/python2.7 (from -r ../Paperino/a.txt (line 2))
Le caratteristiche di pip sono piuttosto numerose, per approfondimenti consultate la sua home page.


Pingback: Introduzione a reStructuredText