Pour info, le pipx dont je parle c’est justement pour règler ce problème.
Historiquement, le Python installé avec le système était open bar, et du coup y avait vite moyen de foutre une grouille pas possible (toutes les dépendances de tous les softs Python installées dans le même environnement…) et des blocages inextricable (A dépend de D version 2 maximum, B dépend de D version 3 minimum, comment je fais pour installer à la fois A et B ?).
Et le bordel quand tu développes, puisque tu peux te retrouver avec ton soft qui a des dépendances que tu n’avais pas remarquées, parce que c’était déjà installé et que du coup t’as pas remarqué qu’il fallait l’installer pour faire tourner ton soft…
Donc très vite il y a eu les venv, pour pouvoir faire un environnement pour chaque soft, mais c’est chiant, faut penser à le faire, faut activer le venv à chaque fois que tu veux utiliser le soft, etc…
Et c’est là qu’arrive pipx : tu l’installes avec apt (ou autre gestionnaire, il est dans les dépôts de plusieurs dizaines de distros), et ensuite au lieu d’installer tes applis Python avec pip install tu les installes avec pipx install. Ça te gère automatiquement la création du venv, éventuellement avec une version de Python différente de celle du système (par exemple si tu dois faire tourner un truc qui veut un Python 3.11 alors que celui livré avec ton système est le 3.12), à condition qu’elle soit déjà installée (et si pas dans le PATH, faut lui dire où elle est), et ça te crée un petit script qui va te permettre de lancer ton appli directement, sans avoir à activer manuellement le venv avant. Et c’est ce script qui va être mis dans le path, avec le même nom que la commande d’origine, donc c’est totalement transparent.
Et du coup t’es certain de pas pourrir ton système en plombant l’environnement Python standard, et t’as aucun problème de conflit de dépendances.
Tu peux même installer plusieurs fois le même paquet Python, avec le suffixe de ton choix, comme ça par exemple si tu as installé Poetry v1 et que tu veux tester Poetry v2 avant de l’adopter, tu peux faire pipx install poetry --suffix _2, et tu pourras utiliser Poetry v2 avec la commande poetry_2, pendant que la commande poetry tout court continuera à lancer la v1. Puis une fois satisfait, tu fais un pipx upgrade poetry, puis un pipx uninstall poetry_2, et ta commande poetry tout court sera désormais la v2.