Apprendre Python : Gestionnaire de Paquets pip
Découvrez comment utiliser pip, le gestionnaire de paquets officiel de Python. Apprenez à installer, mettre à jour et gérer vos dépendances efficacement.
Qu’est-ce que pip ?
Gestionnaire de paquets
En programmation, on dit souvent qu’il ne faut pas « réinventer la roue ».
Pourquoi ? Car la plupart des fonctionnalités que vous voulez intégrer dans vos projets ont sûrement déjà été développées et testées par d’autres avant vous. En plus de ça, des personnes vont même être en charge de les maintenir (évolution / corrections / sécurité).
Et la magie de l’open-source… c’est que vous pourrez télécharger le code de ces fonctionnalités et les installer dans votre projet : on parle de « paquets » ou « dépendances ».
C’est là qu’interviennent les gestionnaires de paquets : tels d’immenses annuaires, ils listent les paquets disponibles, leurs propres dépendances et permettent de les télécharger, installer, mettre à jour et désinstaller très facilement.
Il existe de nombreux packages managers. Chacun est dédié à un langage ou à un framework particulier :
- Maven (JAVA)
- Bundler (Ruby)
- Composer (PHP)
- npm ou yarn (JavaScript)
- pip (Python)
- Etc.
Dans notre cas, c’est pip qui va nous intéresser.
pip
(Pip Installs Packages) est le gestionnaire de paquets pour Python le plus utilisé dans le monde, il regroupe la plupart des paquets open-source communautaires pour Python.
Python propose par défaut une riche bibliothèque standard (les « Core Modules ») pour de nombreuses tâches courantes. Cependant, pour des besoins spécifiques ou avancés, il est courant d’installer des paquets externes via pip
(les « Third-Party Modules »).
Fonctionnement
pip permet de gérer des dépendances via des lignes de commande.
Il automatise la gestion des paquets et de leurs dépendances en installant et mettant à jour lui-même les différents paquets dont dépend notre projet. Ces paquets peuvent être installés :
- Globalement : Affecte tous les projets sur le système.
- Localement (dans un environnement virtuel) : Isolé pour chaque projet, évitant les conflits de versions.
PyPI : un annuaire pour les dépendances Python
PyPI (Python Package Index) est la plateforme référençant la plupart des paquets open-source disponibles pour Python. Cette plateforme joue le rôle d’annuaire de référence pour la communauté de développeurs Python.
Les paquets publiés sur PyPI sont gérés par la communauté et sont gratuits.
Les paquets PyPI (outils, frameworks, bibliothèques…) sont installés en ligne de commande et peuvent être mis à jour facilement et rapidement.
Gérer des paquets avec pip
Les opérations classiques effectuées sur les paquets sont l’installation, la mise à jour et la suppression.
Installer un paquet
Pour installer un paquet Python, on exécute la commande pip install
, mais cette commande présente certaines options en fonction des paramètres d’installation souhaités.
Installation globale
Un paquet installé globalement affectera tous les projets.
pip install <nom_paquet>
Python installera ainsi ce paquet au niveau du système tout entier. Cela correspond aux dossiers :
- 📂
/usr/local/lib/pythonX.X/site-packages
pour macOS/Linux - 📂
C:\PythonX\Lib\site-packages
pour Windows
Il est également possible de n’installer un paquet que pour l’utilisateur courant en utilisant l’option --user
. Cela permet de limiter l’installation au répertoire utilisateur sans affecter les autres utilisateurs ou les paquets du système.
pip install --user <nom_paquet>
Le paquet sera alors situé dans :
- 📂
~/.local/lib/pythonX.Y/site-packages
pour macOS/Linux - 📂
C:\Users\<nomUser>\AppData\Roaming\Python\PythonX.Y\site-packages
pour Windows
Pour éviter ce scénario, il est possible d’installer un paquet au sein d’un environnement virtuel. 👇
Installation locale (environnement virtuel)
Pourquoi utiliser un environnement virtuel ?
- Isolation : Chaque projet peut avoir ses propres dépendances (versions de paquets) sans entrer en conflit avec d’autres projets.
- Organisation : Tu évites de polluer l’installation globale de Python avec des paquets qui pourraient ne pas être nécessaires pour d’autres projets.
- Portabilité : Facilite la gestion des dépendances lors de la collaboration avec d’autres développeurs ou lors du déploiement sur différents environnements (par exemple en
production
).
Comment créer un environnement virtuel ?
Il est possible de créer un environnement virtuel avec la commande suivante :
python -m venv <nom_env>
L’utilisation de -m
permet d’exécuter des modules Python (ici venv
) comme des scripts.
Le nom de l’environnement peut :
- Etre basé sur le nom du projet
- Dépendre du contexte (
dev
,prod
…) - Etc.
Une bonne pratique consiste à ajouter _env
à la fin.
La ligne de commande python -m venv laconsole_env
crée un dossier 📂 laconsole_env
contenant l’interpréteur Python et les fichiers nécessaires pour installer des paquets de manière isolée.
Il ressemble à cela pour Windows :
📁 laconsole_env
├── 📁 Include
├── 📁 Lib
├── 📁 Scripts
└── 📄 pyvenv.cfg
📁 Include
: Contient les fichiers d’en-tête C pour la compatibilité avec des extensions Python compilées.📁 Lib
: Regroupe les bibliothèques et modules Python installés dans cet environnement virtuel.📁 Scripts
: Stocke les exécutables, notamment l’activateur de l’environnement (activate.bat
) virtuel et l’interpréteur (python.exe
).📄 pyvenv.cfg
: Fichier de configuration qui enregistre la version de Python utilisée et d’autres paramètres pour l’environnement.
Pour macOS et Linux, la structure d’un environnement virtuel Python est similaire, mais avec quelques différences dans les noms des dossiers. Voici à quoi cela ressemble :
📁 laconsole_env
├── 📁 include
├── 📁 lib
├── 📁 bin
└── 📄 pyvenv.cfg
Outre les noms de dossiers en minuscule, la principale différence est que le dossier 📁 Scripts
(sur Windows) devient 📁 bin
sur macOS et Linux.
Comment supprimer un environnement virtuel ?
Pour supprimer un environnement virtuel Python, il suffit de supprimer le dossier (par exemple 📁 laconsole_env
) qui contient cet environnement. Il n’y a pas de commande spécifique pour cela.
Comment activer un environnement virtuel ?
Afin que les installations de paquets se fassent au sein de l’environnement de travail, il est nécessaire de l’activer.
En fonction de votre OS, il est possible d’activer l’environnement virtuel préalablement créé, comme ceci :
Pour Windows :
nom_env\Scripts\activate
Pour macOS/Linux :
source nom_env/bin/activate
Une fois activé, le nom de l’environnement virtuel va précéder la localisation du répertoire courant dans le terminal, et les paquets installés via pip
seront isolés à cet environnement (dans un dossier 📁 site-packages
).
(nom_env) PS C:\Users\thiba\Desktop\python-sandbox>
Comment désactiver un environnement virtuel ?
Pour désactiver un environnement virtuel, il suffit d’exécuter la commande suivante :
deactivate
Cela ramène ainsi à l’environnement Python global du système.
Installation d’une version spécifique
Par défaut, la dernière version du package est téléchargée, mais il est possible d’en spécifier une version particulière en spécifiant cette version avec l’opérateur ==
suivi du numéro de version :
pip install <nom_paquet>==<version>
Mettre à jour un paquet
Avec le temps, la plupart des paquets maintenus vont évoluer vers de plus récentes versions.
Si vous aviez téléchargé un paquet en v.1.3.7
en début d’année, il est possible que 6 mois plus tard, ce paquet soit en v.1.4.5
. Il faudra alors le mettre à jour pour profiter des dernières fonctionnalités, mais aussi des corrections et mises à jour de sécurité.
Pour mettre à jour un paquet Python, on utilise également la commande pip install
, mais cette fois ci avec l’option --upgrade
:
pip install --upgrade <nom_paquet>
Cette commande va chercher la dernière version disponible du paquet spécifié et l’installer, remplaçant ainsi la version précédente.
Supprimer un paquet
Pour supprimer un paquet Python, on exécute la commande pip uninstall
, suivi du nom du paquet à supprimer :
pip uninstall <nom_paquet>
Voir les paquets installés
Pour voir les packages déjà installés, vous pouvez utiliser la commande :
pip freeze
Cette commande génère une liste de tous les paquets installés dans l’environnement Python actuel, accompagnée de leurs versions exactes.
Voici un exemple de sortie de pip freeze
:
requests==2.25.1
numpy==1.21.0
pandas==1.3.0
Si le répertoire actuel contient un environnement virtuel, la commande pip freeze
affichera les paquets spécifiques à cet environnement. En revanche, en cas de suppression du dossier de l’environnement virtuel, elle listera les paquets installés globalement.
Mettre à jour pip
Pour mettre à jour votre version de pip sur Windows, macOS ou Linux, il est possible d’utiliser… pip
.
pip install --upgrade pip