2 points par GN⁺ 2024-07-10 | 2 commentaires | Partager sur WhatsApp

Rye : une expérience Python sans tracas

Rye est une solution de gestion de projets et de paquets Python. Rye offre une expérience unifiée pour tous les utilisateurs de Python, permettant de gérer de façon fluide l’installation de Python, les projets basés sur pyproject.toml, les dépendances et les environnements virtuels. Il prend en charge les projets complexes, les monorepos et l’installation d’outils globaux.

Instructions d’installation

Linux

  • Exécuter la commande curl qui installe le binaire adapté au système d’exploitation et à l’architecture CPU
    curl -sSf https://rye.astral.sh/get | bash
    
  • Télécharger et installer le binaire de la dernière release
    gunzip rye-x86_64-linux.gz
    chmod +x ./rye-x86_64-linux
    ./rye-x86_64-linux
    

macOS

  • Exécuter la commande curl qui installe le binaire adapté au système d’exploitation et à l’architecture CPU
    curl -sSf https://rye.astral.sh/get | bash
    
  • Télécharger et installer le binaire de la dernière release
    gunzip rye-aarch64-macos.gz
    chmod +x ./rye-aarch64-macos
    ./rye-aarch64-macos
    

Windows

  • Télécharger puis exécuter le binaire de la dernière release
  • Il est recommandé d’activer le « Developer Mode »
  • Windows Intel 64 bits : rye-x86_64-windows.exe
  • Windows Intel 32 bits : rye-x86-windows.exe

Points d’attention

  • Rye n’utilise pas encore de binaires signés. Il faut autoriser l’exécutable.
  • Une alerte de cheval de Troie « Bearfoos » peut apparaître. Il s’agit d’un faux positif.
  • Rust et Cargo sont requis. L’installation peut se faire avec rustup.
    cargo install --git https://github.com/astral-sh/rye rye
    

Le résumé de GN⁺

  • Rye fournit aux développeurs Python une solution unifiée de gestion de projets et de paquets.
  • La prise en charge des projets complexes et de l’installation d’outils globaux améliore l’expérience développeur.
  • Quelques précautions sont nécessaires pendant l’installation, mais l’utilisation reste globalement simple.
  • Parmi les outils offrant des fonctions similaires, on trouve Poetry et Pipenv.

2 commentaires

 
lum7671 2024-07-11

Cela fait un moment, mais après avoir utilisé diverses choses,
j’utilise Introduction - PDM.

Il va falloir que j’essaie aussi Rye.

 
GN⁺ 2024-07-10
Commentaires sur Hacker News
  • Une grande partie du développement essentiel autour du packaging se fait dans uv, et Rye utilise aussi uv

    • Récemment, la prise en charge de la résolution « universelle » a été ajoutée à uv, ce qui permet de générer des fichiers requirements.txt fonctionnant sur toutes les plateformes et tous les systèmes d’exploitation
    • Rye le prend également en charge dans sa dernière version
    • Il est possible de répondre aux questions sur Rye et uv
  • Le défaut de Rye est qu’il recommande fortement l’utilisation de builds Python non standard

    • D’après la page présentant la philosophie de Rye, les builds CPython sont totalement inadaptés et causent divers problèmes sur différentes plateformes
    • Ce projet utilise les builds standalone d’indygreg
    • Il est aussi possible de choisir un autre Python
    • Certains n’ont jamais rencontré de problème avec les builds Python officiels et s’inquiètent de l’usage de builds non standard
  • Beaucoup d’utilisateurs aiment Rye

    • Rye rend réellement agréables les étapes liées à venv, aux versions de Python et au packaging
    • Il donne à Python une sensation proche de Cargo
  • Certains utilisateurs sont aussi surpris par le cynisme de HN

    • Après avoir utilisé les gestionnaires de paquets d’autres langages (cargo, hex), l’absence d’un système comparable en Python leur paraissait regrettable
    • Rye résout complètement ce problème
  • Découvrir un nouveau gestionnaire de dépendances Python, c’est comme découvrir un nouveau framework JavaScript

  • Certains utilisateurs aiment aussi pixi

    • pixi permet d’épingler la version de Python et d’installer des paquets depuis conda et PyPI
    • Il est écrit en Rust
  • Des développeurs non spécialisés en Python ne comprennent pas pourquoi la DX des projets Python est si mauvaise

    • Avec npm/node, amorcer un projet et comprendre ses dépendances est très simple
    • Ils se demandent pourquoi Python a mis si longtemps à trouver une alternative mature à requirements.txt
  • Il faut noter que l’équipe de uv a repris le projet Armin

  • Rye semble excellent, et certains utilisent aussi Poetry avec plaisir

    • Il y a beaucoup d’admiration pour la qualité des outils par défaut de Go
    • À chaque démarrage d’un projet Python, on a l’impression de devoir réapprendre la gestion des dépendances et des venv
  • Selon la page de présentation de Rye, il s’agit encore d’un outil très expérimental

    • Certains sont très enthousiastes à propos du projet, mais prévoient d’attendre qu’il atteigne un stade plus mature
    • Comme ils apprécient tous les autres projets de l’équipe Astral, leurs attentes sont élevées