2 Punkte von GN⁺ 2024-07-10 | 2 Kommentare | Auf WhatsApp teilen

Rye: Python ohne Umstände

Rye ist eine Lösung zur Verwaltung von Python-Projekten und -Paketen. Rye bietet allen Python-Nutzern ein integriertes Erlebnis und ermöglicht die nahtlose Verwaltung von Python-Installationen, auf pyproject.toml basierenden Projekten, Abhängigkeiten und virtuellen Umgebungen. Es unterstützt komplexe Projekte, Monorepos und die globale Installation von Tools.

Installationsanleitung

Linux

  • Führe den curl-Befehl aus, der das passende Binary für Betriebssystem und CPU-Architektur installiert
    curl -sSf https://rye.astral.sh/get | bash
    
  • Lade das Binary des neuesten Releases herunter und installiere es
    gunzip rye-x86_64-linux.gz
    chmod +x ./rye-x86_64-linux
    ./rye-x86_64-linux
    

macOS

  • Führe den curl-Befehl aus, der das passende Binary für Betriebssystem und CPU-Architektur installiert
    curl -sSf https://rye.astral.sh/get | bash
    
  • Lade das Binary des neuesten Releases herunter und installiere es
    gunzip rye-aarch64-macos.gz
    chmod +x ./rye-aarch64-macos
    ./rye-aarch64-macos
    

Windows

  • Lade das Binary des neuesten Releases herunter und führe es aus
  • Die Aktivierung des "Developer Mode" wird empfohlen
  • 64-Bit Intel Windows: rye-x86_64-windows.exe
  • 32-Bit Intel Windows: rye-x86-windows.exe

Hinweise

  • Rye verwendet noch keine signierten Binärdateien. Die ausführbare Datei muss zugelassen werden.
  • Es kann eine Warnung zum Trojaner "Bearfoos" erscheinen. Dabei handelt es sich um einen Fehlalarm.
  • Rust und Cargo werden benötigt. Die Installation ist mit rustup möglich.
    cargo install --git https://github.com/astral-sh/rye rye
    

Zusammenfassung von GN⁺

  • Rye bietet Python-Entwicklern eine integrierte Lösung für Projekt- und Paketverwaltung.
  • Es unterstützt komplexe Projekte und die globale Installation von Tools und verbessert so die Developer Experience.
  • Bei der Installation sind einige Hinweise zu beachten, insgesamt ist die Nutzung aber unkompliziert.
  • Ähnliche Tools mit vergleichbaren Funktionen sind Poetry und Pipenv.

2 Kommentare

 
lum7671 2024-07-11

Es ist schon eine Weile her, aber nachdem ich dies und das ausprobiert habe, verwende ich
Introduction - PDM
.

Dann sollte ich wohl auch Rye einmal ausprobieren.

 
GN⁺ 2024-07-10
Hacker-News-Kommentare
  • Bei uv findet viel zentrale Entwicklungsarbeit rund um Packaging statt, und Rye nutzt ebenfalls uv

    • Kürzlich wurde in uv Unterstützung für „universelle“ Auflösung hinzugefügt, sodass sich requirements.txt-Dateien erzeugen lassen, die auf allen Plattformen und Betriebssystemen funktionieren
    • Rye unterstützt dies ebenfalls in der neuesten Veröffentlichung
    • Bei Fragen zu Rye und uv kann geantwortet werden
  • Ein Nachteil von Rye ist, dass stark dazu geraten wird, nicht standardmäßige Python-Builds zu verwenden

    • Laut der Philosophie-Seite von Rye sind CPython-Builds völlig unzureichend und verursachen auf verschiedenen Plattformen unterschiedliche Probleme
    • Dieses Projekt verwendet indygreg-Standalone-Builds
    • Man kann auch ein anderes Python wählen
    • Es wurden nie Probleme mit offiziellen Python-Builds erlebt, daher bestehen Bedenken gegenüber der Verwendung nicht standardmäßiger Builds
  • Es gibt viele Nutzer, die Rye mögen

    • Rye macht den Prozess rund um venv/Python-Version/Packaging tatsächlich angenehm
    • Es lässt Python eher wie Cargo wirken
  • Manche Nutzer sind vom Zynismus auf HN überrascht

    • Nach der Nutzung von Paketmanagern anderer Sprachen (cargo, hex) wurde bedauert, dass Python kein ähnliches System hat
    • Rye löst dieses Problem vollständig
  • Einen neuen Python-Dependency-Manager zu entdecken ist wie ein neues JavaScript-Framework zu entdecken

  • Es gibt auch Nutzer, die pixi mögen

    • pixi fixiert die Python-Version und ermöglicht die Installation von Paketen aus conda und PyPI
    • Geschrieben in Rust
  • Nicht-Python-Entwickler verstehen nicht, warum die DX von Python-Projekten so schlecht ist

    • Mit npm/node sind Projekt-Bootstrap und das Verständnis von Dependencies sehr einfach
    • Es wird hinterfragt, warum Python so lange gebraucht hat, um eine ausgereifte Alternative zu requirements.txt zu finden
  • Es ist erwähnenswert, dass das uv-Team das Armin-Projekt übernommen hat

  • Rye sieht großartig aus, und Poetry wird ebenfalls gern verwendet

    • Es gibt großen Respekt vor den hochwertigen Standard-Tools von Go
    • Jedes Mal, wenn ein Python-Projekt begonnen wird, fühlt es sich an, als müsse man Dependency-/venv-Management erneut lernen
  • Laut der Einführungsseite von Rye ist Rye noch ein sehr experimentelles Tool

    • Es gibt große Vorfreude auf dieses Projekt, aber es ist geplant zu warten, bis es einen reiferen Stand erreicht
    • Da alle anderen Projekte des Astral-Teams gefallen, sind die Erwartungen hoch