2 Punkte von GN⁺ 2025-01-29 | 1 Kommentare | Auf WhatsApp teilen
  • Im Verzeichnis ~/bin/ werden viele Automatisierungs-Skripte erstellt.
  • Seit der Entdeckung von uv und Inline-Skript-Metadaten wird häufiger Python verwendet.
  • Da sich ~/bin im Pfad befindet, sollen Skripte direkt über die Kommandozeile ausgeführt werden.
  • Dafür wird folgender Shebang verwendet: #!/usr/bin/env -S uv run --script
  • Die Kommandozeile führt nun uv run --script aus und übergibt die Datei als Argument.
  • uv ignoriert den Shebang und führt den Rest der Datei als normale Python-Datei aus.
  • Nachdem dem Skript mit dem Befehl chmod a+x {filename} Ausführungsrechte gegeben wurden, lassen sich einfache in Python geschriebene Kommandozeilen-Skripte verwenden. Diese handhaben ihre Abhängigkeiten automatisch.

1 Kommentare

 
GN⁺ 2025-01-29
Hacker-News-Kommentar
  • Mit der Option env -S lassen sich in der Shebang-Zeile mehrere Argumente übergeben

    • Das widerlegt die verbreitete Annahme, dass eine Shebang-Zeile unter Linux nur ein einziges Argument übergeben kann
    • env -S ist nützlich, um Argumente einzeln aufzuteilen und auszuführen
  • Die Installation von Python-CLI-Tools mit uv wurde verbessert

    • Mit einem curl | sh-Skript lässt sich die Installation einfach durchführen
    • Ein kleines Installationspaket auf PyPI, das von uv abhängt, installiert das CLI-Tool
    • Dadurch ist eine Installation in einer isolierten Umgebung möglich, ohne Python-Virtual-Environments verwalten zu müssen
    • GitHub-Issues aufgrund komplexer Abhängigkeitsprobleme werden dadurch seltener
  • Es wurde eine Methode entwickelt, Prolog-Dateien aus der Shell heraus ausführbar zu machen

    • Die Prolog-Datei wird so gestaltet, dass sie auch als Shell-Datei erkannt und ausgeführt werden kann
    • In der Shell wird die erste Zeile als Kommentar behandelt, um Fehler zu vermeiden
  • Der Artikel von Trey Hunner, "Lazy self-installing Python scripts with uv", bietet weitere Beispiele und Details

  • Mit mise lassen sich Skripte für kleine Aufgaben schreiben

    • Es wird gezeigt, wie man mit uv Python-Skripte ausführt
  • Die Verwaltung von Python-Umgebungen mit uv run python ist praktisch

    • Man kann eine REPL in der Projektumgebung starten, ohne .venv verwalten zu müssen
    • Probleme mit Systeminstallationen werden vermieden, und die Ausführung erfolgt direkt innerhalb des Projekts bzw. der Umgebung
  • Beim Einsatz von uv als Command-Runner gibt es ein paar Dinge zu beachten, aber in den meisten Fällen spart es Zeit

    • Für Pfadprobleme beim direkten Ausführen von .py-Dateien gibt es eine entsprechende Option
  • TypeScript-Nutzer können mit Deno Ähnliches tun

    • Mit deno run lassen sich zusätzliche Berechtigungs-Flags angeben
  • Mit dem Nix-Paketmanager lassen sich verschiedene Sprachen und Abhängigkeiten verwalten

    • Es ist möglich, portable Skripte in einer einzigen Datei zu schreiben