PIP

pip, à ne pas confondre avec Spip ou pipe, est un petit utilitaire pour ajouter librairies (modules on devrait dire) python. Il est bien fichu, il gère les dépendances, et permet de faire un peu de gestion, à la manière d'un gestionnaire de paquet comme aptitude ou yum.

L'installer

c'est facile, il est fourni dans une suite d'outils pour python appelée setuptools, on trouve des paquets facilement dans les gestionnaires de dépots linux, et il existe un executable pour l'installer sous windows.

L'utiliser

installer un module

pip gère les dépendances d'un module, il va installer tout seul les modules nécessaires au bon fonctionnement du module que vous voulez installer

 pip install nomModule

on peut aussi choisir d'installer une version précise d'un module :

pip install nomModule=0.9
désinstaller un module

pip sait aussi désinstaller des modules :

pip uninstall nomModule
upgrade ou downgrade de module

on peut mettre à jour (ou retrograder) un module

pip install nomModule --upgrade
pip install nomModule=0.9 --upgrade
liste des modules installés

pip nous liste les modules installés et leurs versions

$ pip freeze
Axiom==0.6.0
BeautifulSoup==3.2.0
Brlapi==0.5.6
gérer un environnement de développement

on peut générer en une seule commande l'environnement de développement :

pip freeze > requirements.txt

et l'importer sur une autre machine :

pip install -r requirements.txt
installer depuis les sources

Il arrive qu'un module ne soit pas dispo sur pypi, mais on peut récupérer une archive des sources avec un setup.py, pip peut l'installer (et référencer ce module par le pip freeze)

pip install -e /path/to/the/module/
installer depuis des miroirs

Si le site pypi n'est pas disponible, pip possède en interne une liste de miroirs qu'on peut solliciter explicitement (pip les essayera les uns après les autres jusqu'au premier qui soit disponible)

pip install --use-mirrors nomModule
installer des modules avec des extensions en C

Certain modules, numpy entre autres, possèdent des extensions en C (pour des raisons de performances) qu'il faut compiler à l'installation. pip sait faire ça, mais le processus peut ne pas aboutir : souvent ces extensions en C nécessitent des dépendances qui ne sont pas en python, et donc pas gérées par pip. Il faut alors regarder du côté du gestionnaire de paquet (aptitude/yum) pour installer les lib nécessaires, souvent la version -dev ou -devel pour avoir non seulement les binaires, mais aussi les headers (.h). Citons par exemple : python-de(vel), libxml2-dev(el)