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 updatesudo 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.

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-venvpour s’assurer que le module venv est disponible (absent par défaut sur certaines installations minimales)python3 -m venv mon-projet-envpour créer l’environnement dans un dossier dédiésource mon-projet-env/bin/activatepour 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-paquetmet à jour un paquet vers sa dernière version compatiblepip listaffiche tous les paquets installés dans l’environnement actif, avec leurs versionspip show nom-du-paquetdonne le détail d’un paquet précis (version, emplacement, dépendances)pip uninstall nom-du-paquetretire proprement un paquet de l’environnementpip install --upgrade pipmet à 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.

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.

