Comme beaucoup de gens, je supporte les frustrations parce que je ne sais pas s’il existe une alternative. Cela s'est produit avec mon environnement Mamba pour la science des données. Puis j'ai trouvé Pixi. Ce nouvel outil a résolu mes maux de tête. Cela pourrait résoudre le vôtre et vous n'avez pas besoin d'être un data scientist pour l'utiliser.
Qu’est-ce que Pixi ?
Un gestionnaire de paquets pour les développeurs de tous bords
Pixie est un gestionnaire de paquets qui s'exécute au-dessus du gestionnaire de paquets du système d'exploitation, tel que apt sur les systèmes basés sur Ubuntu et Debian ou WinGet sur Windows. Il est destiné aux développeurs.
Si la plupart des systèmes d'exploitation modernes disposent d'un gestionnaire de packages, pourquoi voudriez-vous installer un autre système de gestion de packages ? Si vous êtes développeur, la plupart des packages dont vous dépendez, tels que les bibliothèques, les interpréteurs, les débogueurs ou les compilateurs, ont tendance à être plus anciens que les versions actuelles.
Si vous souhaitez une version plus récente que celle contenue dans les référentiels de packages, vous auriez dû auparavant la télécharger et éventuellement la compiler séparément du système principal. Cela pourrait rendre difficile la mise à niveau à l'avenir, car vous devrez répéter le processus lorsque de nouvelles versions de vos outils sortiront.
Prefix, les développeurs de Pixi, ont créé une démo vidéo pour montrer Pixi en action :
Pixi est basé sur des projets. Vous configurez un environnement de développement pour le projet sur lequel vous travaillez et vous pouvez le supprimer une fois que vous avez terminé. Vous pouvez créer un environnement spécifique avec certaines versions, et Pixi figera cette configuration dans un « fichier de verrouillage ». Vous pouvez partager votre environnement avec d'autres personnes et elles devraient pouvoir créer une application ou exécuter un script dans le même environnement dans lequel vous l'avez créé.
Pourquoi j'ai abandonné Mamba
La mise à jour était trop lente
J'avais déjà utilisé Mamba pour mettre en place un environnement de développement pour mes statistiques, ou mon analyse de données, ou ma science des données, ou mon apprentissage automatique, ou quel que soit le terme à la mode du moment, dans Mamba. Cela s'est bien passé pendant un moment, mais j'ai remarqué des problèmes flagrants.
Le plus gros problème était le temps qu’il fallait pour mettre à jour mes environnements. Si vous utilisez un gestionnaire de packages Linux, celui-ci détermine généralement rapidement les packages à télécharger. Lorsque je voulais mettre à jour mon environnement, il me fallait des minutes, souvent des dizaines de minutes, pour « résoudre » les mises à jour. Je pensais que c'était ridicule.
Je devais également « activer » mon environnement de statistiques chaque fois que je voulais l'utiliser. Parfois, j'avais un éclair d'inspiration et je voulais lancer IPython ou un notebook Jupyter, mais je recevais un message d'erreur sur le terminal car il ne l'avait pas activé.
En parcourant l'environnement NumPy, j'ai trouvé une solution que je ne pensais pas chercher. Pixi a été répertorié comme l’un des meilleurs moyens d’installation pour les nouveaux utilisateurs. J'ai décidé de l'essayer.
L'installation de Pixi est simple :
- Ouvrir une fenêtre de terminal
- Naviguer vers la page d'installation
- Copie le script d'installation
- Coller dans le terminal
Pixi sera désormais installé et prêt à créer des environnements de développement.
Créer un environnement
Vos projets vivent désormais dans des répertoires
Avec Pixi installé, je peux créer un environnement. Je vais le démontrer en créant un environnement générique « python scientifique » qui inclut NumPy, SciPy, SymPy, IPython, Jupyteret matplotlib.
pixi init sci
Cette commande crée un répertoire (s'il n'existe pas déjà) et crée un répertoire .pixi masqué sous Linux, ainsi que pixi.toml et pixi.lock.
Le premier répertorie les fichiers installés et les exécutables exposés, et le fichier de verrouillage définit les packages installés jusqu'aux versions spécifiques. Cela permet de dupliquer l’environnement de développement exact sur une autre machine.
Une fois l'environnement créé, je peux installer des packages :
pixi add ipython jupyter numpy scipy sympy matplotlib
Mises à jour rapides
Pixi met à jour vos environnements facilement et rapidement
Après avoir installé Pixi et créé un environnement, j'ai pu le mettre à jour beaucoup plus rapidement. Ces mises à jour prenaient quelques secondes au lieu de quelques minutes. Cela peut être dû au fait que le client est écrit en Rust, un remplacement rapide, compilé et sécurisé en mémoire du C.
Le processus de mise à niveau est similaire à l'utilisation d'autres gestionnaires de packages Linux tels que APT.
Pour mettre à jour le package, vous exécutez cette commande à partir du répertoire du projet :
pixi update
Pour mettre à niveau les packages disponibles, tapez :
pixi upgrade
Plusieurs projets à la fois
Changez d'environnement sans transpirer
Grâce à la structure des répertoires, vous pouvez facilement avoir différents environnements avec différents projets. Vous pouvez même avoir différents environnements dans un même projet.
En dehors de mon environnement de statistiques, j'ai essayé d'installer SageMathqui est disponible dans les référentiels. Il utilise le même référentiel de packages que Mamba, donc je sais ce que j'obtiens.
pixi create sage
cd sage
pixi add sage
Pour utiliser un environnement Pixi, vous pouvez exécuter un shell avec l'environnement complet :
pixi shell
Lorsque vous avez terminé, vous pouvez quitter en tapant « exit » ou en appuyant sur Ctrl + d pour revenir à votre shell habituel.
Alternativement, vous pouvez exécuter une seule commande à l'aide de la commande « pixi run ». Je peux le faire pour SageMath
pixi run sage
Je pourrais toujours mettre en place un workflow global de statistiques/science des données
Mes outils préférés à portée de main
Dans mon environnement de statistiques, je peux exécuter IPython ou Jupyter de la même manière que Sage :
pixi run ipython
pixi shell
jupyter notebook
Il serait plus pratique de pouvoir les exécuter sans avoir à passer à un autre environnement. Normalement, je devrais utiliser un gestionnaire de packages système pour ce faire. Pixi me permet de configurer des environnements globaux à portée de main. C'est pratique pour quelqu'un qui travaille avec l'analyse de données.
Pour configurer cela, je peux créer un environnement utilisant des statistiques avec NumPy, SciPy, SymPy et mes bibliothèques préférées, notamment Seaborn et statsmodels.
Je peux le faire avec cette commande :
pixi global install --environment stats --expose jupyter --expose ipython jupyter numpy pandas matplotlib statsmodels sympy ipython
Ceci est similaire à l’utilisation d’un gestionnaire de packages standard. Les sections « –expose » permettent aux exécutables externes d'utiliser les bibliothèques, car ils s'exécutent dans des environnements isolés lorsqu'ils sont installés avec Pixi.
Je trouve également le script « isympy » très pratique à utiliser avec SymPy, donc je l'ai également « exposé ». J'ai édité le fichier pixi.toml en utilisant cette commande :
pixi global edit
Sous la section « exposed = « , j'ai ajouté :
isympy = "isympy"
Je pourrais désormais avoir la calculatrice de bureau ultime à portée de main.
Enfin un moyen simple de gérer mon environnement de développement
Pixi a résolu beaucoup de problèmes que j'avais avec Mamba. Il semble que ce soit encore une autre chose que j'aurais aimé découvrir plus tôt.
Vous pouvez lire l’article original (en Angais) sur le sitewww.howtogeek.com