Repackaging
Eigentlich neige ich in Bezug auf KI eher zu Spott als zu Hysterie und mache mir relativ wenig Sorgen um KI-Kontamination, aber die Übernahme von Astral durch OpenAI gibt mir schon zu denken.
Vor einiger Zeit hatte ich nämlich meine Skripte unter Verwendung von Claude und uv grundlegend modernisiert, ohne die Magie von uv wirklich zu durchdringen. Deshalb – und nicht nur wegen des hübschen Namens – wende ich mich pipx zu. Im Gegensatz zu uv-verwalteten Paketen –
drwxr-x---@ 9 snafu staff 288 May 31 2025 .git/ -rw-r-----@ 1 snafu staff 109 May 31 2025 .gitignore -rw-r-----@ 1 snafu staff 5 Feb 5 10:57 .python-version drwxr-x---@ 6 snafu staff 192 Jun 11 2025 .ruff_cache/ drwxr-x---@ 8 snafu staff 256 Jul 5 2025 .venv/ drwxr-x---@ 5 snafu staff 160 Jun 12 2025 dist/ -rw-r-----@ 1 snafu staff 705 Feb 5 10:57 pyproject.toml -rw-r-----@ 1 snafu staff 0 May 31 2025 README.md drwxr-x---@ 3 snafu staff 96 Aug 30 2025 src/ -rw-r-----@ 1 snafu staff 32297 Jul 5 2025 uv.lock
– benötigen handgepackte Python-Pakete viel weniger Paketband:
drwxr-x---@ 5 snafu staff 160 Mar 26 09:23 ./ drwxr-x---@ 8 snafu staff 256 Mar 25 12:43 ../ -rw-r-----@ 1 snafu staff 508 Mar 26 09:22 pyproject.toml -rw-r-----@ 1 snafu staff 0 Mar 25 12:43 README.md drwxr-x---@ 3 snafu staff 96 Mar 25 12:43 src/
pipx ist rasch installiert, und auch die Installation eines Paketes ist simpel:
brew install pipx pipx ensurepath cd /Users/snafu/Scripts/my_package pipx install --editable .
Das Paket landet in ~/.local/pipx/venvs, die enthaltenenen CLI-Kommandos als Symlinks in ~/.local/bin (das mit ensurepath in den Pfad aufgenommen wurde). pipx nutzt die Python-Version, mit der es installiert wurde, und verschafft sich nicht selbständig irgendwelche Python-Binaries. Nur lokale Abhängigkeiten kann pipx weniger gut berücksichtigen. Mit uv können sie vorab definiert werden –
# pyproject.toml [tool.uv.sources] scriptlogger = { path = "../scriptlogger", editable = true } notifier = { path = "../notifier", editable = true }
– mit pipx müssen sie nach der Installation des eigentlichen Paketes injiziert werden:
pipx inject --editable --force my_package /Users/snafu/Scripts/lib/notifier pipx inject --editable --force my_package /Users/snafu/Scripts/lib/scriptlogger