Pixi - Pour créer des environnements de dev aux petits oignons

par Korben -

Que vous soyez sous macOS, Linux ou Windows, si vous êtes développeur, alors Pixi risque de vous intéresser. Ce projet écrit en Rust, au logo “apéricube” n’est ni plus ni moins qu’un gestionnaire de paquets fonctionnant sur l’écosystème Conda et permettant d’installer toutes les libs et outils dont vous auriez besoin dans vos projets.

Pixi est libre et open source et s’inspire fortement de Cargo pour ceux qui connaissent. Il supporte Python, R, C/C++, Rust, Ruby et bien d’autres langages. Et permet de reproduire des environnements à l’identique entre les OS sans avoir besoin de Docker, tout simplement grâce aux fichiers lockfiles qu’il crée automatiquement.


Pour installer Pixi sous Linux et macOS :

curl -fsSL https://pixi.sh/install.sh | bash

Et sous Windows, ouvrez un Powershell et entrez la commande :

iwr -useb https://pixi.sh/install.ps1 | iex

Ensuite y’a plus qu’à créer votre projet comme ceci :

pixi init pixi-hello-world cd pixi-hello-world

Ajoutez ensuite les dépendances dont vous avez besoin :

pixi add python

Ou si vous voulez une version spécifique du paquet :

pixi add python==3.10

Créez le code dont vous avez besoin (ici ce sera donc hello_world.py) :

def hello(): print("Salut tout le monde !!!!") if __name__ == "__main__": hello()

Puis lancez ce code dans votre environnement :

pixi run python hello_world.py

Sachez qu’il est également possible de mettre ce code dans une tâche (task) comme ceci :

pixi task add hello python hello_world.py

Mon code étant dans la task “hello”, je peux maintenant l’appeler comme ceci :

pixi run hello

Et pour avoir un Shell dans l’environnement que vous venez de créer :

pixi shell

Et une fois que vous êtes content, y’a plus qu’à faire un

pixi build

Pour récupérer un package Conda prêt à être déployé ailleurs.

Bref, super pratique pour mettre en place un environnement aux petits oignons avec les bons paquets et les bonnes versions sans se prendre la tête. Cela permet d’avoir des environnements isolés facilement reproductibles et donc partageables.

À tester d’urgence :)