Pourquoi devriez-vous installer des applications Python avec pipx (et comment commencer)
Points clés à retenir
- L'installation d'applications Python peut être difficile en raison de conflits potentiels avec les packages système, mais pipx facilite la tâche en créant des environnements virtuels et en gérant les dépendances pour vous.
- Pipx est une alternative conviviale à pip qui installe des applications à l'échelle du système sans nécessiter de privilèges sudo, et qui vous aide à ajouter, mettre à niveau ou supprimer des applications Python sans effort.
- Avec pipx, vous pouvez installer des applications Python CLI, les exécuter comme les commandes Linux standard et même les désinstaller facilement. C'est un outil pratique pour gérer et étendre votre bibliothèque d'applications.
Il existe une tonne d'applications Python CLI utiles, mais l'installation n'est pas toujours aussi simple qu'il y paraît. Voyons comment pipx peut faciliter leur installation et leur gestion.
Pourquoi les applications Python sont délicates
L'installation d'applications Python peut devenir assez rapide. Python est un langage polyvalent et souvent les premiers à l'apprendre. En parcourant GitHub ou PyPI, l'index des packages Python, vous pouvez trouver des tonnes d'applications utiles ainsi que des bibliothèques de programmation. Depuis qu'il est devenu omniprésent, de nombreuses personnes contribuent au code, ainsi qu'à un mélange d'instructions pour les installer.
La plupart des instructions d'installation vous indiquent d'installer à l'aide de pip, le gestionnaire de packages pour Python. Comparable à apt et yum pour Linux, il utilise PyPI comme référentiel et vous permet d'installer des bibliothèques pour votre code ainsi que des applications complètes écrites en Python. Cependant, l'installation d'un logiciel via l'instance de pip présente sur votre système peut provoquer des conflits avec les packages déjà détenus et gérés par votre gestionnaire de packages habituel. De nos jours, la plupart des distributions Linux utilisent et dépendent de Python et des packages associés afin d'exécuter les fonctions du système d'exploitation, et d'autres logiciels de base s'appuient souvent sur des versions spécifiques de certaines bibliothèques.
Je déconseille fortement l'installation de logiciels au niveau du système avec sudo pip install car cela peut provoquer des conflits avec le gestionnaire de packages de votre système et entraîner une fonctionnalité interrompue ou, dans le pire des cas, un système qui ne démarre pas. Je ne suis pas seul dans ce cas non plus, car RealPython et la documentation de virtualenv le recommandent, et même la documentation officielle de Python signale le problème.
Une autre option consiste à installer au niveau utilisateur avec pip install --user, mais tous les packages ne fonctionnent pas parfaitement de cette façon. Les dépendances sont toujours installées à l'échelle du système pour cet utilisateur, ce qui peut également causer des problèmes.
La communauté Python recommande d'utiliser ce qu'on appelle un environnement virtuel, souvent appelé venvs, pour créer des dossiers isolés qui incluent toutes les parties requises d'un projet pour fonctionner, mais les utiliser lorsque vous n'êtes pas familier avec le processus peut être très frustrant. surtout si vous essayez de créer un script. Ce ne sont là que quelques-uns des défis que les utilisateurs pourraient rencontrer pour faire fonctionner les applications Python sur leur système.
pipx à la rescousse
Pour résoudre nos problèmes, nous pouvons utiliser une application appelée pipx. Il s'agit d'une alternative conviviale à pip qui s'adresse aux utilisateurs finaux plutôt qu'aux programmeurs. Il crée les environnements virtuels pour vous, installe les dépendances et rend les programmes disponibles dans tout le système, le tout sans nécessiter de privilèges sudo sur votre système. Il gère également vos applications Python installées pour vous, ce qui facilite leur ajout, leur mise à niveau ou leur suppression comme bon vous semble.
Étant donné que pipx n'est pas destiné aux programmeurs, il ne prend pas en charge certaines des fonctionnalités critiques que vous souhaiteriez lors du développement, comme l'installation de packages modifiables à des fins de test. Ceci est strictement réservé aux utilisateurs !
Pour installer pipx, le moyen le plus simple consiste à utiliser le gestionnaire de packages de votre système. Tout d’abord, assurons-nous que les packages requis sont installés. Si vous utilisez une distribution basée sur Debian comme Ubuntu, vous pouvez utiliser apt.
sudo apt update && sudo apt install python3-venv python3-pip
Cela installera les packages de base pour les environnements virtuels et le gestionnaire de packages pip. De nombreuses distributions Linux les auront préinstallés, mais pas toutes. Surtout, les versions de Debian et Ubuntu ne garantissent pas que ces packages seront préinstallés, donc si vous utilisez ces distributions, vous devez exécuter les commandes ci-dessus. Si vous utilisez une autre distribution, utilisez votre gestionnaire de paquets approprié, qu'il s'agisse de Yum, Pacman ou même Brew.
Ensuite, nous pouvons installer le package pipx lui-même.
sudo apt install pipx
Enfin, nous voulons nous assurer que pipx est connecté à notre chemin, afin que les applications installées se lancent de la même manière que toutes les autres. Il nous suffit d'exécuter cette commande pipx :
pipx ensurepath
Notez qu'il n'y a pas de sudo pour cette commande ! Tout fonctionnera dans l'espace utilisateur, ce qui est exactement ce que nous souhaitons afin d'éviter de perturber l'installation Python de notre système d'exploitation.
Sur certaines distributions, comme Ubuntu, vous pouvez recevoir un message vous indiquant que vous devrez peut-être vous reconnecter pour que le changement de chemin prenne effet. Sur Rhino Linux, les choses ont fonctionné immédiatement, mais sur Ubuntu, j'ai dû me déconnecter et me reconnecter.
Et voilà, pipx est prêt à partir ! Voyons comment l'utiliser avec certaines applications Python.
Installation des applications Python CLI
Installons une application amusante appelée cowsay en utilisant pipx.
pipx install cowsay
Vous pouvez utiliser l'application Python comme s'il s'agissait d'une commande ou d'une application Linux standard que nous avons installée. Sous le capot, il fonctionne dans son propre environnement virtuel et toutes les dépendances sont séparées et éloignées de notre système d'exploitation principal.
Si vous n'avez besoin d'exécuter une application qu'une seule fois et que vous ne voulez pas vous soucier de l'installation et de la désinstallation, pipx dispose d'un mode d'exécution qui gère également cela pour vous.
pipx run speedtest-cli
Vous pouvez également fournir des arguments pour l’application afin de pouvoir exécuter des commandes spécifiques. Il y a quelques mises en garde concernant le formatage, alors assurez-vous de consulter la documentation officielle de pipx.
Vous pouvez utiliser pipx pour voir quelles applications Python vous avez installées.
pipx list
Vous pouvez voir que speedtest-cli n'est pas installé, mais cowsay est toujours présent sur notre système.
Vous pouvez également désinstaller facilement l'application Cowsay.
pipx uninstall cowsay
Là où pipx aide vraiment, c'est dans la gestion d'applications plus complexes. À titre d'exemple, vous pouvez facilement écrire de simples scripts bash pour lancer et maintenir l'application calibre-web afin d'héberger votre propre bibliothèque de livres électroniques, car vous pouvez la traiter comme une simple commande. Sans pipx, les fichiers de service que vous devez écrire seraient beaucoup plus délicats pour quelqu'un qui ne connaît pas Python et ses pratiques de déploiement.
Développez votre bibliothèque d'applications avec pipx
Maintenant que pipx est installé, une multitude de nouveaux programmes s'offrent à vous ! Si vous trouvez des projets sur GitHub ou PyPI que vous souhaitez utiliser, pipx peut simplifier leur installation et leur utilisation en seulement une minute ou deux.