Vous êtes ici : Accueil Tutoriels Utiliser pip

Utiliser pip

PIP : le mode d'emploi et FAQ.

Installer un module pour son système

Procédure d'installation

Pip permet d'installer aisément des modules Python, à la manière dont on installe des paquets dans une distribution linux.

Les systèmes d'exploitation actuels utilisent Python 2. Il est possible d'installer un module (dans cet exemple sqlalchemy) pour le Python 2.x de son système en faisant simplement:

$ pip install sqlalchemy

On installe alors la toute dernière version du module mise à disposition sur le site pypi. Dans notre exemple (et à la date de cet article), il s'agit de la 0.8.0b2. Et par installer, on entend télécharger le paquet, décompresser, copier les fichiers aux bons endroits et compiler si nécessaire.

Environnement virtuel

Lorsque l'on installe un module pour son système, il est disponible dans la console Python ainsi que pour tous les programmes Python installés sur la machine. Sachant que les programmes installés sur la machine sauront installer leurs dépendances seuls, si vous installez un module, c'est forcément pour tester du code, une application ou pour travailler vous-même avec ce module.

Or, lorsque l'on développe son application, il est préférable de se créer un environnement virtuel isolé pour plusieurs raison :

  • ne pas polluer le python de son système d'exploitation ;
  • se permettre de gérer finement les numéros de version de chaque module indépendamment de ceux du système ;
  • se permettre de reproduire les conditions du système de production (avec une version de python et de ses modules différentes) ;
  • se permettre de gérer différents environnements avec différentes versions ;

Lorsque l'on crée un tel environnement, pip est également installé et son utilisation va alors installer les modules dans l'environnement virtuel et non plus dans l'environnement du système :

$ which pip
/usr/local/bin/pip
$ source bin/activate
$ which pip
/path/to/env/bin/pip

Du coup, l'utilisation d'un tel environnement virtuel permet de se sécuriser par rapport à toutes les problématiques de conflits avec les modules du système et par rapport aux problématiques de versions, y compris pour la version de Python, puisque si l'environnement virtuel fonctionne avec Python 3, alors ses exécutables nommés python et pip seront pour la version 3.x.

Sachant tout cela, il faut se poser la question de la pertinence de créer ou d'utiliser un environnement virtuel pour son projet avant d'installer tout module avec pip.

FAQ

Mettre à jour un paquet

$ pip install sqlalchemy --upgrade

Cette méthode met à jour le paquet sqlalchemy, mais également ses dépendances.

Mettre à jour un paquet de manière non-récursive

Si l'on veut mettre à jour le paquet sqlalchemy sans mettre à jour ses dépendance, on pourra procéder ainsi:

pip install --upgrade --no-deps sqlalchemy

L'inconvénient de cette méthode est que si la nouvelle version de sqlalchemy a une nouvelle dépendance, celle-ci n'est pas installée. Il faudra alors faire ceci :

pip install sqlalchemy

A ce moment là, on va installer les nouvelles dépendances sans toucher à celles existantes.

Installer une version précise d'un paquet

$ pip install -Iv sqlalchemy==0.7.8

Supprimer un paquet

$ pip uninstall sqlalchemy

Revenir à une version précédente

$ pip uninstall sqlalchemy
$ pip install -Iv sqlalchemy==0.7.8

Python 3

Lorsque l'on souhaite installer un module avec pip pour le python3 de son système d'exploitation, il faut installer une nouvelle version de pip. Pour cela, le plus simple est d'utiliser ceci :

$ easy_install3 pip

On dispose alors d'une nouvelle commande qui est pip3-2 :

$ pip3-2 install sqlalchemy

paquets installés

Afficher dans le terminal la liste des paquets installés ainsi que leurs versions :

$ pip freeze

Lorsque l'on se trouve dans un environnement virtuel qui a un accès aux paquets du système et que l'on ne veut que les paquets locaux :

$ pip freeze -l

Récupérer cette liste dans un fichier :

$ pip freeze > requirements.txt

Le fichier peut alors être modifié en supprimant le numéro de version ou en le remplaçant par une version minimale, selon les besoins.

Installer une liste de paquets

A partir d'un fichier créé à l'aide de la commande pip freeze, on peut procéder à une installation :

$ pip install -r requirements.txt

Se créer un dépôt local

On peut les télécharger les paquets pour les mettre dans un répertoire local et faire l'installation à partir de ce répertoire local. Cela évite le fait de télécharger plusieurs fois les mêmes paquets et cela permet également de contrôler les numéros de versions utilisés :

$ mkdir <DIR>
$ pip install --download <DIR> sqlalchemy
$ pip install --download <DIR> -r requirements.txt

On peut télécharger ainsi un paquet particulier ou une liste de paquets.

Installer à partir d'un dépôt local

Il faut préciser deux options pour se passer totalement de la connexion internet :

$ pip install --no-index --find-links=<DIR> -r requirements.txt

Ouvrir un paquet sans l'installer

Cette opération permet de voir des éventuels problèmes lors de l'installation, de visualiser le code source si besoin, le tout sans réellement l'installer (il ne sera pas dans site-package):

$ pip install --no-install sqlalchemy

Terminer l'installation d'un paquet ouvert

Voici comment terminer l'installation à partir d'un paquet ouvert avec la commande précédente :

$ pip install --no-download sqlalchemy

-

Spinner