Aller au contenu
Développement medium

Pipx facilite l'installation des outils Python

10 min de lecture

logo python

Si tu utilises régulièrement Python, tu as sûrement déjà installé des outils en ligne de commande avec pip. Mais as-tu remarqué que certains conflits peuvent apparaître entre les dépendances de tes projets ? C’est là que Pipx intervient ! Pipx permet d’installer et exécuter des applications Python dans des environnements isolés, sans toucher à ton installation globale. Plus besoin de jongler avec des virtualenv ou de polluer ton système : chaque outil est autonome et facile à gérer.

Pourquoi tout installer avec pip est une mauvaise idée ?

Section intitulée « Pourquoi tout installer avec pip est une mauvaise idée ? »

L’installation des outils Python, comme Ansible, peut parfois tourner au cauchemar, surtout quand on jongle entre l’installation avec le compte root et celles faite avec son propre compte utilisateur. Mauvais droits, conflits de dépendances, accès refusés… Voyons les principaux problèmes et comment les éviter.

Utiliser le compte root : risqué et déconseillé

Section intitulée « Utiliser le compte root : risqué et déconseillé »

Quand on utilise sudo pip install pour installer un outil Python au niveau système, on peut se retrouver avec :

Un accès global à l’outil pour tous les utilisateurs. Des risques de conflits avec d’autres paquets installés par le gestionnaire de paquets du système d’exploitation. Un risque de casser Python : si un package système dépend d’une version spécifique d’un module et qu’on le met à jour avec pip, il peut devenir inutilisable.

Par exemple si tu fais :

Fenêtre de terminal
sudo pip install requests

Tu risques de remplacer la version installée par apt et ton système peut ne plus fonctionner correctement.

Utiliser son compte utilisateur : des problèmes en perspective

Section intitulée « Utiliser son compte utilisateur : des problèmes en perspective »

Si tu installes des outils sans sudo avec pip install --user, tu peux rencontrer d’autres problèmes :

Le binaire n’est pas dans le PATH : Après installation, l’outil peut être introuvable car ~/.local/bin/ (sous Linux/macOS) ou %APPDATA%\Python\Scripts\ (sous Windows) n’est pas dans le $PATH.

Solution : Ajouter ~/.local/bin dans ton .bashrc :

Fenêtre de terminal
export PATH="$HOME/.local/bin:$PATH"

Impossible d’écraser une version installée en root : Si un outil a déjà été installé avec sudo pip install, la version utilisateur ne pourra pas la remplacer. Résultat : pip dit que tout est OK, mais l’ancien binaire est toujours utilisé.

Solution : Vérifier où est installé l’outil avec :

Fenêtre de terminal
which tool-name

Désinstaller la version root et réinstaller proprement avec pipx ou pip install --user.

Tu as peut-être déjà utilisé pip pour installer des outils Python, mais Pipx fonctionne différemment. Son but ? Isoler chaque application dans un environnement dédié pour éviter les conflits de dépendances. Voyons en détail comment ça marche.

Quand tu installes un outil avec Pipx, il crée automatiquement un environnement virtuel indépendant. Contrairement à pip install --user, qui installe les paquets dans ton répertoire utilisateur, Pipx les place chacun dans leur propre dossier.

Fenêtre de terminal
pipx install black

Ce qu’il se passe en coulisses :

  1. Création d’un environnement virtuel :
    • Le dossier ~/.local/pipx/venvs/black/ est créé (Linux/macOS).
    • Sur Windows, ça ira dans %APPDATA%\pipx\venvs\black\.
  2. Installation de l’outil dans cet environnement avec pip.
  3. Ajout d’un lien symbolique dans ~/.local/bin/ (ou %APPDATA%\Python\Scripts\ sous Windows) pour exécuter black sans activer manuellement le venv.

Ainsi, chaque outil tourne dans un environnement isolé, sans interférer avec les autres.

L’installation de Pipx est simple et rapide, mais elle varie selon ton système d’exploitation. Que tu sois sur Linux, macOS ou Windows, je vais te guider pas à pas pour mettre en place Pipx proprement.

  • Avec pip (méthode recommandée)
Fenêtre de terminal
python -m pip install --user pipx
python -m pipx ensurepath
/home/bob/.local/bin is already in PATH.
⚠️ All pipx binary directories have been added to PATH. If you are sure you want to proceed, try again with the '--force' flag.
Otherwise pipx is ready to go! 🌟

ensurepath ajoute le dossier ~/.local/bin/ dans le $PATH, pour que tu puisses exécuter les outils installés avec Pipx.

Si tu es sur macOS et que tu utilises Homebrew :

Fenêtre de terminal
brew install pipx
pipx ensurepath

Dans PowerShell, lance :

Fenêtre de terminal
python -m pip install --user pipx
python -m pipx ensurepath

Pipx est maintenant installé, mais pense à redémarrer PowerShell pour que les modifications prennent effet.

Peu importe la méthode utilisée, vérifie que Pipx est bien installé en tapant :

Fenêtre de terminal
pipx --version

Si la commande fonctionne, c’est bon ! Sinon, ton $PATH n’est peut-être pas bien configuré.

Utiliser Pipx pour installer et exécuter des outils Python

Section intitulée « Utiliser Pipx pour installer et exécuter des outils Python »

Maintenant que Pipx est installé, voyons comment l’utiliser efficacement. Avec Pipx, tu peux installer, exécuter et gérer des outils Python en toute simplicité, sans te soucier des conflits de dépendances.

Exécuter un outil temporairement sans l’installer

Section intitulée « Exécuter un outil temporairement sans l’installer »

Si tu veux tester un outil sans l’installer définitivement, Pipx permet de l’exécuter directement avec pipx run :

Fenêtre de terminal
pipx run cowsay "Hello, Pipx!"

L’outil est téléchargé, exécuté, puis supprimé. Parfait pour tester un programme sans encombrer ton système.

Mais attention : si l’outil est trop volumineux ou si tu l’utilises souvent, mieux vaut l’installer avec pipx install.

La commande de base pour installer un outil est :

Fenêtre de terminal
pipx install <nom_du_paquet>

Exemple : Installer l’outil httpie

Fenêtre de terminal
pipx install httpie

Vérifions que l’installation a bien fonctionné :

Fenêtre de terminal
http --version

Si la commande fonctionne, Pipx a bien installé et configuré l’outil ! 🚀

Une fois installée, une application peut être exécutée normalement depuis le terminal, comme n’importe quelle commande.

Exemple : Utiliser httpie pour tester une API

Fenêtre de terminal
http https://api.github.com

L’avantage de Pipx : Pas besoin d’activer manuellement un venv, tout est déjà prêt !

Installer une version spécifique d’une application

Section intitulée « Installer une version spécifique d’une application »

Parfois, tu as besoin d’une version particulière d’un outil. Pipx permet d’installer une version précise avec == :

Fenêtre de terminal
pipx install poetry==1.3.2

Très utile si une nouvelle version introduit un bug et que tu veux revenir en arrière.

Pipx propose plusieurs commandes pour gérer les outils installés.

Fenêtre de terminal
pipx list

Cela affiche tous les outils gérés par Pipx et leur emplacement.

Fenêtre de terminal
pipx upgrade <nom_du_paquet>

Exemple : Mettre à jour poetry

Fenêtre de terminal
pipx upgrade poetry

Cela met à jour Poetry sans affecter les autres outils.

Mettre à jour toutes les applications d’un coup

Section intitulée « Mettre à jour toutes les applications d’un coup »
Fenêtre de terminal
pipx upgrade-all

Utile pour garder tous tes outils à jour !

Fenêtre de terminal
pipx uninstall <nom_du_paquet>

Exemple : Supprimer black

Fenêtre de terminal
pipx uninstall black

Cela supprime entièrement l’outil et son environnement virtuel.

Si un outil est corrompu ou ne fonctionne plus bien, tu peux le réinstaller :

Fenêtre de terminal
pipx reinstall <nom_du_paquet>

Cela supprime l’installation existante et réinstalle proprement l’outil.

Ajouter des dépendances supplémentaires à une application

Section intitulée « Ajouter des dépendances supplémentaires à une application »

Certains outils nécessitent des modules supplémentaires pour fonctionner correctement. Plutôt que d’utiliser pip, tu peux injecter des dépendances directement dans l’environnement de l’application :

Exemple : Ajouter requests à un outil installé avec Pipx

Fenêtre de terminal
pipx inject httpie requests

Cela installe requests dans l’environnement virtuel de mytool, sans affecter le reste du système.

Pour voir les dépendances injectées, utilise :

Fenêtre de terminal
pipx list

Changer la version de Python utilisée par une application**

Section intitulée « Changer la version de Python utilisée par une application** »

Par défaut, Pipx utilise la version de Python installée sur ton système. Mais si un outil nécessite une version spécifique, tu peux lui dire d’utiliser une autre version de Python.

Exemple : Installer Poetry avec Python 3.10

Fenêtre de terminal
pipx install --python /usr/bin/python3.10 poetry

Si ton outil est déjà installé et que tu veux changer sa version de Python installé avec pyenv :

Fenêtre de terminal
pipx reinstall-all --python /usr/bin/python3.10

Cela réinstalle toutes les applications Pipx avec la nouvelle version de Python.

Avec Pipx, fini les installations chaotiques et les conflits de dépendances ! Cet outil te permet d’installer, exécuter et gérer proprement tes applications Python en les isolant dans des environnements dédiés. Plus besoin de jongler avec pip install --user ou des virtualenvs manuels.

Que ce soit pour tester rapidement un outil, mettre à jour tes applications ou gérer différentes versions de Python, Pipx est la solution idéale.

Adopte Pipx et garde un système propre et organisé !