Installing Python with pip sur Linux : les commandes à connaître

On lance un script Python sur un serveur Linux fraîchement provisionné, et la commande pip install requests renvoie un « command not found ». La situation est banale, mais la résolution dépend de la distribution, de la version de Python présente et de la manière dont on compte gérer ses dépendances. Installer Python avec pip sur Linux demande quelques vérifications préalables pour éviter de casser le gestionnaire de paquets système.

Vérifier la version de Python avant toute installation pip

Avant de toucher à pip, on contrôle ce qui tourne déjà sur la machine. La plupart des distributions Linux embarquent Python 3, mais pas toujours dans une version récente. Depuis Python 3.12, certains paquets modernes (frameworks web, outils CLI, agents IA) échouent silencieusement si la version est trop ancienne. Les messages d’erreur ne pointent pas toujours vers la cause réelle.

A lire aussi : Sécuriser les données informatiques : les bonnes pratiques à adopter

La première commande à lancer :

python3 --version

Lire également : Connexion à 1et1 Webmail : guide étape par étape

Si le retour affiche une version antérieure à 3.10, on peut s’attendre à des incompatibilités avec des bibliothèques récentes. Sur un VPS sous Debian ou Ubuntu, la version dépend de la release de l’OS. Un système plus ancien livrera un Python plus ancien, point.

On vérifie ensuite si pip est déjà présent :

pip3 --version

Si la commande répond, on note le chemin affiché. Ce chemin indique si pip est rattaché au Python système ou à un environnement virtuel. Cette distinction compte pour la suite.

Installer pip sur Debian, Ubuntu et dérivés avec apt

Sur les distributions récentes (Debian 12, Ubuntu 24.04 et au-delà), pip pour Python 3 est disponible via le paquet python3-pip dans les dépôts officiels. L’installation recommandée passe par le gestionnaire de paquets du système, pas par le script get-pip.py que l’on trouve encore dans certains tutoriels anciens.

La séquence complète :

sudo apt update
sudo apt install python3-pip

Cette méthode présente un avantage direct : apt gère les dépendances système liées à pip et évite les conflits entre paquets Python installés globalement et ceux du système. Le script get-pip.py est déconseillé par la documentation Python officielle depuis plusieurs années, car il contourne cette gestion.

Femme développeuse installant pip pour Python sur Ubuntu dans un espace de coworking avec terminal ouvert

Le piège de sudo pip install sur un système moderne

Lancer sudo pip install un-paquet installe le paquet au niveau global du système. Sur un parc de machines partagées, les autres utilisateurs ne verront pas forcément ces paquets, comme le signalent régulièrement des administrateurs sur les forums Ubuntu. Le comportement dépend des chemins configurés dans chaque session.

Depuis Python 3.11, les distributions Debian et Ubuntu bloquent d’ailleurs l’installation globale via pip avec l’erreur « externally-managed-environment ». Le système refuse volontairement un pip install hors environnement virtuel pour protéger les paquets gérés par apt. On en arrive au point suivant.

Environnement virtuel Python : la commande pip sans conflit système

L’approche fiable sur Linux consiste à créer un environnement virtuel avant d’utiliser pip. On isole les dépendances du projet sans toucher au Python système. Voici la séquence type :

  • sudo apt install python3-venv pour s’assurer que le module venv est disponible (absent par défaut sur certaines installations minimales)
  • python3 -m venv mon-projet-env pour créer l’environnement dans un dossier dédié
  • source mon-projet-env/bin/activate pour activer l’environnement dans le terminal courant

Une fois l’environnement activé, la commande pip install fonctionne sans sudo et sans erreur « externally-managed-environment ». Les paquets s’installent dans le dossier de l’environnement, pas dans le système.

Pour vérifier que tout pointe au bon endroit :

which pip

Le chemin retourné doit contenir le nom du dossier de l’environnement virtuel. Si on voit /usr/bin/pip, l’environnement n’est pas activé.

Gérer les dépendances d’un projet avec un fichier requirements

Quand on travaille sur plusieurs projets, on fige les versions des paquets installés dans un fichier :

pip freeze > requirements.txt

Pour reproduire l’environnement sur une autre machine ou après une réinstallation :

pip install -r requirements.txt

Ce fichier requirements.txt est le contrat de dépendances du projet. Sans lui, on reconstitue l’environnement à tâtons, paquet par paquet, version par version.

Commandes pip à connaître pour le quotidien sur Linux

Au-delà de pip install, quelques commandes reviennent en permanence quand on gère des paquets Python sur un serveur ou un poste de développement.

  • pip install --upgrade nom-du-paquet met à jour un paquet vers sa dernière version compatible
  • pip list affiche tous les paquets installés dans l’environnement actif, avec leurs versions
  • pip show nom-du-paquet donne le détail d’un paquet précis (version, emplacement, dépendances)
  • pip uninstall nom-du-paquet retire proprement un paquet de l’environnement
  • pip install --upgrade pip met à jour pip lui-même, ce qui est recommandé après la création d’un environnement virtuel

La commande pip list --outdated est utile pour repérer les paquets qui ont une version plus récente disponible sur PyPI, le dépôt central des packages Python.

Vue aérienne d'un laptop sous Linux avec terminal pip et Python ouvert entouré de notes de commandes et d'un café

Sécurité des paquets PyPI : une vigilance devenue nécessaire

On ne peut plus parler d’installation pip sans mentionner la supply chain. Les attaques sur PyPI se sont intensifiées ces dernières années. La campagne « Hades », identifiée début juin 2026, a compromis au moins 19 paquets et 37 wheels malveillants sur le dépôt.

Concrètement, cela signifie qu’un pip install anodin peut introduire du code malveillant si le nom du paquet est mal orthographié (typosquatting) ou si un paquet légitime a été compromis. Quelques réflexes réduisent le risque :

Vérifier le nom exact du paquet sur pypi.org avant installation. Épingler les versions dans le fichier requirements.txt plutôt que d’installer la dernière version à l’aveugle. Utiliser un outil d’analyse comme Trivy pour scanner les dépendances d’un projet.

Pip ou méta-outils comme uv : ce qui change en pratique

Depuis 2024, un outil appelé uv se positionne comme remplaçant de pip, virtualenv, pipx et même pyenv. Son adoption progresse chez les développeurs Python, en particulier pour les nouveaux projets. L’outil gère à la fois la version de Python, la création d’environnements et l’installation des dépendances dans une seule interface.

Pip reste la référence dans la documentation officielle et sur la majorité des serveurs en production. Les retours varient sur ce point : certaines équipes migrent vers uv pour la vitesse de résolution des dépendances, d’autres conservent pip par habitude et compatibilité avec leurs pipelines CI/CD existants.

Pour un serveur Linux en production avec des projets établis, pip dans un environnement virtuel reste le chemin le plus documenté et le mieux supporté. Pour un projet neuf sans contrainte d’existant, tester uv permet de gagner du temps sur la gestion des versions Python et des dépendances.

Les immanquables