Environment Management und Packaging

, Jochen

Soooo, nach einer langen, dunklen, ungeplanten Sommerpause aufgrund unüberwindlicher Terminfindungsschwierigkeiten gibt es jetzt endlich wieder eine neue Episode 🎙️!

Dominik und Jochen haben diesmal mit Anna-Lena über Python Environment Management und Packaging Tools gesprochen. Sie hat dazu bereits einen super Artikel geschrieben und einen Vortrag auf der letzten Europython-Konferenz gehalten. Während in anderen Sprachen wie Rust das Thema weniger knifflig ist und es eine kanonische Lösung gibt, kommt man in der Python-Welt 🐍 leider nicht umhin, sich mit diesem Problem auseinanderzusetzen.

Shownotes

Unsere E-Mail für Fragen, Anregungen & Kommentare: hallo@python-podcast.de

Vorstellung

News

Tools

Picks

  • ChronoJon on 9. Oktober 2023 21:01 reply

    Fürs Scaffolding gibt es ebenfalls https://copier.readthedocs.io/en/stable/

    Eines der erklärten Ziele ist es, die Projekte damit auch upgraden zu können. Ein eigenes Templates zu erstellen, ist ebenfalls ziemlich leicht, wenn man sich bereits mit jinja auskennt. Ich habe damit eine Starter für meine DataScience-Projekte in 2-3 Stunden geschrieben.

    Ich verstehe nicht, wieso man global ein Package installiert, wenn es so etwas wie pipx gibt. Seitdem ich das benutze, müsste ich nie wieder etwas global installieren. Ich habe auch die pip-Umgebungsvariable gesetzt, die verhindert, dass etwas global installiert werden kann. Manchmal will VSCode nämlich hilfreich sein und installiert etwas versehentlich global.

    • Jochen on 9. Oktober 2023 21:57 reply

      Ah cool, danke für den Hinweis - copier kannte ich bisher noch nicht. Hmm, wenn du gar nichts global installieren magst, wie installierst du dann pipx :-p? Ich finde pipx auch super, aber ich meine mal gelesen zu haben (jetbrains survey oder so), dass überhaupt nur 10-15% der Python-Entwickler pipx kennen. Und es macht Dinge komplizierter, wenn man auf eine neue Python-Version umstellen will. Inzwischen entferne ich zuerst pipx, upgrade dann und installiere dann wieder pipx gefolgt von einem --reinstall-all. Früher hatte ich immer mal wieder alte via pipx installierte Tools, die dann überraschender Weise unter einer alten Version liefen, oder ihren Interpreter nicht mehr gefunden haben, weil der inzwischen deinstalliert war etc pp...

  • chronoJon on 12. Oktober 2023 09:42 reply

    Tatsächlich installiere ich pipx in pipx. Ich erstelle eine bootstrap venv in /temp und installiere dort pipx und installiere dann pipx mit dem pipx in der venv. Dann lösche ich das pipx. Dann reinstall-all

    Übrigens kann man pdm auch mit venvs benutzen. Der Vorteil von pdm ist es, dass es hier die Lock Files plattformübergreifend erstellen kann, was nicht trivial mit pip oder gar pip-tools ist.

    • Jochen Wersdörfer on 12. Oktober 2023 12:06 reply

      Ach, witzige Idee. Verwende beim Installieren von pipx --user, aber sonst ist das selbst nicht isoliert. Hier hat jemand dafür sogar ein Tool gebaut: https://github.com/mattsb42-meta/pipx-in-pipx

      Also plattformübergreifend von Linux bis MacOS geht mit pip-tools super 😄. Ok, mir war gar nicht klar, dass es da Probleme geben kann. Sehr interessant, danke für deinen Kommentar.

cancel reply

Return to blog