Vous lancez pip install et le terminal vous renvoie une erreur cryptique, un message « not found » ou un blocage sans explication. Le réflexe est de relancer la commande, parfois avec sudo, parfois en copiant une solution trouvée sur un forum. Le problème persiste. Derrière ces erreurs se cachent souvent trois ou quatre causes précises, chacune avec une correction simple une fois identifiée.
Erreur « externally-managed-environment » sous Linux récent
Depuis les versions récentes d’Ubuntu et Debian (à partir de 2023), un changement lié à la PEP 668 empêche pip d’installer des packages directement dans l’environnement système. Le message ressemble à ceci : error: externally-managed-environment.
A lire également : Poprtail Orange ne s'ouvre plus : solutions rapides à tester
Ce n’est pas un bug. La distribution protège ses propres packages Python, gérés par apt, contre les modifications accidentelles via pip. Installer un package pip dans le système peut casser des outils internes qui dépendent de versions précises.
Créer un environnement virtuel pour contourner le blocage
La solution recommandée est de travailler dans un virtualenv dédié à chaque projet. Concrètement, trois commandes suffisent :
A lire également : Tableau d'octet conversion : repères rapides pour gagner du temps
python3 -m venv mon_envcrée un environnement isolé dans le dossier courant.source mon_env/bin/activateactive cet environnement (le prompt du terminal change pour confirmer).pip install nom_du_packagefonctionne alors sans erreur, car pip écrit dans le dossier du virtualenv et non dans le système.
Pour les outils en ligne de commande (black, flake8, httpie), pipx est une alternative qui crée automatiquement un environnement isolé par outil. Une seule commande : pipx install black.
Le flag --break-system-packages existe, mais il ne devrait servir que dans des environnements jetables comme un conteneur Docker. Sur un poste de travail, il expose le système aux conflits de dépendances.

pip introuvable : appeler le bon interpréteur Python
Vous tapez pip install requests et le terminal répond command not found. Plusieurs configurations expliquent ce comportement.
Sur certains systèmes, pip n’est pas installé par défaut avec Python. Sous Debian et Ubuntu, il faut d’abord exécuter sudo apt install python3-pip. Sans ce paquet, la commande pip n’existe tout simplement pas.
Utiliser python -m pip plutôt que pip seul
Quand plusieurs versions de Python coexistent (système, Anaconda, WSL, version compilée manuellement), la commande pip peut pointer vers un interpréteur différent de celui que vous utilisez. Le package s’installe, mais votre script ne le trouve pas.
Appeler python -m pip garantit que pip utilise le bon interpréteur. Si vous travaillez avec Python 3.11, tapez python3.11 -m pip install requests. Cette habitude évite la majorité des confusions liées aux chemins.
Sous Windows, vérifiez que Python figure dans la variable PATH. L’installateur officiel propose une case « Add Python to PATH » lors de l’installation. Si elle n’a pas été cochée, pip reste inaccessible depuis le terminal classique.
Blocage réseau et erreurs de certificat SSL avec pip
Votre connexion Internet fonctionne, le navigateur charge les pages, mais pip échoue avec une erreur SSL ou un timeout. Ce scénario est fréquent dans les environnements professionnels où un proxy filtre le trafic HTTPS.
Le proxy de l’entreprise intercepte les connexions chiffrées (inspection TLS). pip ne reconnaît pas le certificat intermédiaire injecté par le proxy et refuse la connexion vers PyPI.
Configurer pip.conf pour un proxy ou un certificat personnalisé
Deux ajustements règlent la plupart des cas :
- Ajouter les hôtes PyPI en tant qu’hôtes de confiance :
pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org nom_du_package. Pour ne pas retaper ces options à chaque fois, inscrivez-les dans le fichierpip.conf(Linux/macOS) oupip.ini(Windows). - Si un proxy est requis, ajoutez la ligne
proxy = http://user:[email protected]:8080dans la section[global]du même fichier de configuration. - Demandez au service réseau d’exclure
pypi.orgetfiles.pythonhosted.orgdu déchiffrement SSL. C’est la correction la plus propre, car elle évite de contourner la vérification de certificat.
Sur un serveur totalement cloisonné (pas d’accès réseau), l’installation hors ligne via des fichiers wheel reste la méthode fiable. Téléchargez les fichiers .whl depuis une machine connectée avec pip download nom_du_package, transférez-les, puis installez avec pip install nom_du_package.whl.

Conflits de dépendances lors d’un pip install
pip affiche parfois un message du type ERROR: Cannot install X because... suivi d’une liste de versions incompatibles. Deux packages demandent des versions différentes d’une même bibliothèque, et pip ne peut pas satisfaire les deux.
Avant de forcer quoi que ce soit, lisez le message d’erreur jusqu’au bout. pip indique précisément quel package exige quelle version. Souvent, mettre à jour le package problématique résout le conflit : python -m pip install --upgrade nom_du_package.
Figer les versions pour reproduire un environnement stable
Un fichier requirements.txt avec des versions figées (requests==2.31.0) évite les surprises lors du déploiement. La commande pip freeze > requirements.txt capture l’état exact de votre environnement.
Quand un conflit persiste, créer un environnement virtuel vierge et réinstaller les dépendances une par une permet d’identifier le package fautif. C’est plus rapide que d’empiler des flags de contournement.
Erreur « site-packages is not writeable » et droits d’accès
Ce message apparaît quand pip tente d’écrire dans un répertoire système sans les permissions nécessaires. Le réflexe sudo pip install fonctionne, mais il mélange les packages utilisateur et les packages système, ce qui crée des problèmes à moyen terme.
Préférer pip install --user pour une installation dans le répertoire personnel. Le package s’installe dans ~/.local/lib/python3.x/ sans toucher au système. Mieux encore, un virtualenv rend la question des droits caduque puisque tout reste dans un dossier que vous contrôlez.
Chaque erreur pip a une logique. Le message indique presque toujours la cause, à condition de le lire en entier plutôt que de chercher immédiatement un copier-coller de solution. Identifier si le blocage vient de l’environnement, du réseau, des droits ou des dépendances oriente vers la bonne correction en quelques minutes.

