Recherche de site Web

Pourquoi vous devriez installer des applications Python avec pipx (et comment commencer)


Principaux enseignements

  • L'installation d'applications Python peut être difficile en raison de conflits potentiels avec les paquets système, mais pipx facilite cela 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 elle vous aide à ajouter, mettre à jour ou supprimer des applications Python sans effort.
  • Avec pipx, vous pouvez installer des applications CLI Python, les exécuter comme des commandes Linux standard et même les désinstaller facilement. C'est un outil pratique pour gérer et élargir votre bibliothèque d'applications.

Il existe de nombreuses applications CLI Python utiles, mais l'installation n'est pas toujours aussi simple qu'elle n'y paraît. Voyons comment pipx peut faciliter leur installation et leur gestion.

Pourquoi les applications Python sont délicates

Installer des applications Python peut devenir compliqué assez rapidement. Python est un langage polyvalent, souvent le premier que l'on apprend. 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. Étant donné qu'il est devenu si omniprésent, il y a beaucoup de personnes qui contribuent au code, avec un mélange d'instructions pour les installer.

La plupart des instructions d'installation vous disent d'installer en utilisant pip, le gestionnaire de paquets pour Python. Comparable à apt et yum pour Linux, il utilise PyPI comme son dépôt et vous permet d'installer des bibliothèques pour votre code ainsi que des applications complètes écrites en Python. Cependant, l'installation de logiciels via l'instance de pip qui est sur votre système peut provoquer des conflits avec les paquets déjà possédés et gérés par votre gestionnaire de paquets habituel. La plupart des distributions Linux de nos jours utilisent et dépendent de Python et des paquets associés pour exécuter des fonctions du système d'exploitation, et d'autres logiciels essentiels reposent souvent sur des versions spécifiques de certaines bibliothèques.

Je déconseille fortement d'installer des logiciels au niveau du système avec sudo pip install car cela peut provoquer des conflits avec le gestionnaire de paquets de votre système et entraîner des dysfonctionnements, ou dans le pire des cas, un système qui ne démarre pas. Je ne suis pas seul à le dire, car RealPython et la documentation de virtualenv recommandent cela, et même la documentation officielle de Python souligne le problème.

Une autre option est d'installer à un niveau utilisateur avec pip install --user, mais tous les paquets ne fonctionnent pas parfaitement de cette façon. Les dépendances sont toujours installées au niveau système pour cet utilisateur, ce qui peut également causer des problèmes.

La communauté Python recommande d'utiliser quelque chose appelé un environnement virtuel - souvent appelé venvs - pour créer des dossiers isolés qui incluent toutes les parties nécessaires 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 script des choses. Ce ne sont là que quelques-uns des défis auxquels les utilisateurs peuvent être confrontés pour faire fonctionner des applications Python sur leur système.

pipx à la rescousse

Pour résoudre nos problèmes, nous pouvons utiliser une application appelée pipx. C'est une alternative conviviale à pip qui s'adresse aux utilisateurs finaux plutôt qu'aux programmeurs. Elle crée les environnements virtuels pour vous, installe les dépendances et rend les programmes disponibles à l'échelle du système, le tout sans nécessiter de privilèges sudo sur votre système également. Elle gère également vos applications python installées, facilitant ainsi l'ajout, la mise à niveau ou la suppression selon vos besoins.

Comme pipx n'est pas destiné aux programmeurs, il ne prend pas en charge certaines des fonctionnalités critiques que vous voudriez pendant le développement, comme l'installation de paquets modifiables pour les tests. Ceci est strictement destiné aux utilisateurs !

Pour installer pipx, le moyen le plus simple est d'utiliser le gestionnaire de paquets de votre système. Tout d'abord, assurons-nous que les paquets requis sont installés. Si vous êtes sur 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 principaux pour les environnements virtuels et le gestionnaire de paquets pip. De nombreuses distributions Linux les auront préinstallés, mais pas toutes. En particulier, les versions de Debian et d'Ubuntu ne garantissent pas que ces paquets seront préinstallés, donc si vous êtes sur ces distributions, vous devriez exécuter les commandes ci-dessus. Si vous êtes sur une autre distribution, utilisez votre gestionnaire de paquets pertinent, que ce soit 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 intégré à notre chemin, afin que les applications installées se lancent de la même manière que toutes les autres. Nous devons juste exécuter cette commande pipx :

pipx ensurepath

Remarquez qu'il n'y a pas de sudo pour cette commande ! Tout fonctionnera dans l'espace utilisateur, ce qui est exactement ce que nous voulons afin d'éviter de déranger l'installation de Python de notre système d'exploitation.

Sur certaines distributions, comme Ubuntu, vous pouvez recevoir un message vous informant que vous devez peut-être vous reconnecter pour que le changement de chemin prenne effet. Sur Rhino Linux, tout a fonctionné immédiatement, mais sur Ubuntu, j'ai dû me déconnecter puis me reconnecter.

Et voilà, pipx est prêt à l'emploi ! Jetons un œil à la façon de l'utiliser avec quelques applications Python.

Installer des applications CLI Python

Installons une application amusante appelée cowsay en utilisant pipx.

pipx install cowsay

Vous pouvez utiliser l'application Python comme si c'était une commande ou une application Linux standard que nous avons installée. En coulisses, elle fonctionne dans son propre environnement virtuel, et toutes les dépendances sont séparées et tenues à l'écart de notre système d'exploitation principal.

Si vous avez besoin d'exécuter une application juste une 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 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 avertissements concernant le formatage, donc assurez-vous de consulter la documentation officielle de pipx.

Vous pouvez utiliser pipx pour voir quelles applications Python installées 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 est vraiment utile, c'est dans la gestion d'applications plus complexes. Par exemple, vous pouvez facilement écrire des scripts bash simples pour lancer et maintenir l'application calibre-web afin d'héberger votre propre bibliothèque d'ebooks, car vous pouvez la traiter comme une simple commande. Sans pipx, les fichiers de service que vous devez écrire seraient beaucoup plus compliqués pour quelqu'un qui ne connaît pas Python et ses pratiques de déploiement.

Élargissez votre bibliothèque d'applications avec pipx

Maintenant que vous avez pipx installé, il y a une richesse de nouveaux programmes à votre disposition ! Si vous trouvez des projets sur GitHub ou PyPI que vous souhaitez utiliser, pipx peut rendre leur installation et utilisation simples en une minute ou deux.