Electron-Apps mit Python mit Dominik Geldmacher und Jochen Wersdörfer vom Python-Podcast.
Im Engineering-Kiosk-Adventskalender 2025 sprechen befreundete Podcaster⋅innen und wir selbst, Andy und Wolfi, jeden Tag kurz & knackig innerhalb weniger Minuten über ein interessantes Tech-Thema.
Unsere aktuellen Werbepartner findest du auf https://engineeringkiosk.dev/partners
Das schnelle Feedback zur Episode:
Anregungen, Gedanken, Themen und Wünsche
Dein Feedback zählt! Erreiche uns über einen der folgenden Kanäle …
- EngKiosk Community: https://engineeringkiosk.dev/join-discord
- LinkedIn: https://www.linkedin.com/company/engineering-kiosk/
- Email: stehtisch@engineeringkiosk.dev
- Mastodon: https://podcasts.social/@engkiosk
- Bluesky: https://bsky.app/profile/engineeringkiosk.bsky.social
- Instagram: https://www.instagram.com/engineeringkiosk/
Unterstütze den Engineering Kiosk
Wenn du uns etwas Gutes tun möchtest … Kaffee schmeckt uns immer
- Buy us a coffee: https://engineeringkiosk.dev/kaffee
Links
- Python Podcast: https://python-podcast.de/show/
- Python: https://www.python.org/
- Electron: https://www.electronjs.org/
- Django: https://www.djangoproject.com/
- FastAPI: https://fastapi.tiangolo.com/
- Flask: https://flask.palletsprojects.com/en/stable/
- uv Python Package Manager: https://github.com/astral-sh/uv
Sprungmarken
Hosts
- Wolfgang Gassler (https://gassler.dev)
- Andy Grunwald (https://andygrunwald.com/)
Community
Diskutiere mit uns und vielen anderen Tech-Spezialist⋅innen in unserer Engineering Kiosk Community unter https://engineeringkiosk.dev/join-discord
Transkript
Willkommen zum Engineering Kiosk Adventskalender. Es ist mal wieder Zeit für ein neues Türchen. Und weil Weihnachten natürlich auch das Fest der Liebe genannt wird, dachten wir uns dieses Lass uns doch mal wieder etwas Liebe mit der deutschsprachigen Tech Podcast Szene teilen. Diese Episode ist eine solche Episode und sie kommt nicht von den Standard Engineering Kiosk Hosts Wolfgang oder mir, mein Name ist Andy, sondern wir lassen uns den Engineering Kiosk mal für einen Tag aus der Hand nehmen. Heute übernimmt ein befreundeter Podcast das Mikro und bringt ihm ein paar neue Perspektiven, ein anderes Thema und vielleicht den ein oder anderen Gedanken, der über unsere eigene Bubble hinausgeht. Wir denken da draußen gibt es großartige Tech Podcasts, die unbedingt mehr Aufmerksamkeit verdienen und wir denken Wissen, Inspiration und gute Geschichten sollte man am besten teilen. Also zurücklehnen, neugierig sein heute mit Dominik und Jochen vom Python Podcast. Los geht's. Viel Spaß.
Herr Jochen, ich habe gehört, man kann in Python Electron extra benutzen, damit man Desktop Native Anwendungen hat auf unterschiedlichen Systemen.
Ja, tatsächlich oder im Allgemeinen ist halt immer so oft ein Problem, wenn man jetzt Python Programme schreibt und die halt irgendwo irgendwie Leuten geben will, wo die dann laufen und Dinge tun, dann will man denen ja nicht erklären, wie man irgendwie einen Python Interpreter installiert und ein Virtual Environment einrichtet und dann die ganzen und die Banane an dem Gorilla dran.
Aus dem Dschungel zieht und so Hölzchen aufs Stöckchen kommt und dann die Wand jax shaven muss. Das wäre alles irgendwie nicht so gut.
Ein Binary geben oder so. Und normalerweise geht das ja mit Python nicht so einfach, oder es gibt da.
Auch diverse, weil Python keine komplizierte Sprache ist, wo man einfach so ein Paket erzeugt und das weitergibt.
Ja, weil keine Binaries normalerweise rausfallen hinten irgendwo. Ein anderer Ansatz, den ich jetzt letztens.
Es gibt auch noch andere. Es gibt auch sowas, ein Rust geschriebenes Ding, das nennt sich Tauri. Da kriegt man die Binaries auch ein.
Bisschen kleiner, weil man den im System eingebauten Browser benutzt und nicht halt irgendwie Electron Apps. Ein bisschen verschwenderisch, weil Elektron ist ein Browser.
Aber in einem Electron Binder ist ein Chromium drin, oder? Genau, ist ein Chromium gebundelt sozusagen, was.
Auch so einen Nachteil, dass das halt irgendwie für ein hundert fünfzig bis zwei hundert Megabyte irgendwie allein dafür sorgt, weil.
Okay, also das heißt, man shippt dann ein Binary, was zwei hundert MB groß ist und dann kann der Nutzer, die Nutzerin, der Kunde, wie auch immer, einfach doppelklicken.
Das eigentlich muss nicht unbedingt aussehen wie ein Browser. Also ganz viele Anwendungen, die Leute so.
Du halt Assets, Static Files, die du halt mit tippen kannst, mit reinlegst und dann wird halt dann der Code der Anwendung ausgeführt, was auch ein Django dann sein kann.
Genau, und deren Datenbank will man natürlich dann vielleicht auch haben und da kann man auch einfach ein sqlite mit schippen und das klappt ganz hervorragend.
Wenn man zum Beispiel Webseiten mit sowas baut wie Django oder Flask oder Fast API oder so, oder wie ich halt.
Mit Django oft, dann dachte ich so, gut, ich habe das nie so wirklich als Möglichkeit in Betracht gezogen, weil ich dachte, puh, das ist bestimmt kompliziert, so.
Und das ist bestimmt viel Arbeit. Und wie ich jetzt festgestellt habe, ist es deutlich weniger Arbeit, als ich dachte. Es ist ein, also du packst sie.
Virtual auch einfach mit in den Ordner rein, den du mitschippst und dann hast du ein portable Verzeichnis, was eine Exe hat, auf die man dann linken kann oder eine Binary und die dann benutzt wird.
Da reinlegen muss, weil das sind natürlich unterschiedliche Binaries, je nachdem was das für eine Plattform ist.
Ja, also UV macht es unter Umständen einfacher. Also okay, wollen wir die wirklich ganz fiesen kleinen Details?
So alt, das Projekt, aber irgendwie auch ein Rust geschrieben, heute alles in Rust geschrieben, ist quasi inzwischen der Standard Paketmanager und auch Standard Tool, um sich Python überhaupt zu installieren für die meisten Leute.
Und das baut halt auch Virtual Envs und macht das sehr schnell und gut und so. Aber das Problem dabei ist so ein bisschen, also ja, das kann man verwenden, Das funktioniert halt auch, wenn man das Virtual Env nicht noch irgendwie anpassen muss, weil wenn man in dem UV Virtual.
Also wenn du zum Beispiel so einen kompletten Data Science Stack mitschippen willst, das ist natürlich auch so was ich meine, so einen kompletten Data Science Stack, wenn du den halt auf dem Windows installieren willst, das ist kein Spaß so richtig. Das ist so eher, das geht schon, Das geht schon. Okay, du hast Erfahrung damit. Ich hab immer, wenn ich es versucht.
Die nichts mit dem tatsächlichen Projekt zu tun haben, weil die Subdependencies haben, die ein Outdated sind oder auf bestimmten Python Versionen nicht so funktionieren, wie du erwartest, weil die Wheels davon noch nicht gebaut worden sind, wo man dann die Pakete mit dem Fortran Compiler und der Banane und dem Zoo installieren muss.
Jetzt, also Entschuldigung, ich brauche jetzt aber wirklich dringend einen Fortran Compiler auf dem Windows, dann. Also ich würde mal sagen, die meisten.
Aber manchmal wäre es ja schon voll cool, so einen kompletten Data Science Deck in einem Windows oder einem Jupyter Notebook unter Windows halt zu haben und lokal.
Das wäre voll cool und das geht auch und das geht auch in der Electron App so, dass du halt das in der Electron App benutzen kannst. Aber das Problem ist, manche von den Bibliotheken, die halt dann gelinkt werden, zum Beispiel von irgendwelchen Data Science Requirements, sind halt auf dem Standard Windows in der falschen, veralteten Version oder einer komischen Version oder gar nicht mit drin. Und da muss man die aus dem Bildsystem irgendwie da in das Virtual Ad mit reinkopieren und dann dafür sorgen, dass die Dinger dagegen gelingt sind und da rumpfuschen. Und wenn man das macht, dann sagt.
Einem so, ey, du hast hier irgendwie ganz komische Sachen gemacht, ne, das starte ich nicht so, das geht nicht.
Die Link Version kann man ändern, also welche, ob er links benutzt oder direkte Links oder nicht linked oder sowas.
Vielleicht wenn man Spezial Windows Fähigkeiten hat, kann man das auch noch irgendwie in Ordnung bringen.
Das mag sein, aber ich habe dann irgendwie nach einem halben Tag oder einem Tag irgendwie aufgegeben, nicht hingekriegt.
Okay, wie auch immer. Jedenfalls hast du wundervolle Pakete, die kannst du mitschüppen, den ganzen Stack da reingepackt und man kann dann Projekte, die aussehen wie eine native Anwendung, die eigentlich eine Webanwendung sind, lokal auf den Rechnern laufen lassen, die tolle Sachen machen mit so.
Und hübschem Frontend, wenn man das will und so weiter. Genau, und das dann lokale Maschine benutzen, weil das Python ja dann lokal läuft auf der Maschine oder sogar natürlich, wenn das freigeschaltet ist und der Netzwerk irgendwie Verkehr frei ist, auch irgendwie Server ansprechen natürlich weitere darauf warten und das schön animieren oder visualisieren.
Die Binaries baut, da denkt man sich jetzt, okay, aber wenn ich jetzt Mac Binaries bauen will, dann brauche ich ja irgendwie einen Mac habe ich jetzt gar.
Nicht oder müssen wir den irgendwie mieten oder so und das dann darauf bauen oder ich brauche für Windows halt ein Windows oder so. Nein, braucht man alles nicht. Wenn man zum Beispiel GitHub Runner verwendet mit so GitHub Actions, in denen kann.
Cool, dann kann ich meine ganze Anwendung direkt komplett dann auch als Paket zusammenschüren lassen, dann habe ich den Download.
Deutlich einfacher als Python und Electron ist da so ein winning Team, würde ich sagen, für so ein Anwending.
Genau, hier ist wieder Andi vom Engineering Kiosk. Das war es auch schon wieder mit dem heutigen Adventskalendertürchen, präsentiert von unseren Freunden aus der deutschsprachigen Tech Podcast Szene. Wenn dir gefallen hat, was du gehört hast, hör unbedingt doch mal dort rein. Supportet die Leute, die gute Inhalte machen. Die Links zum Episodent Thema, aber auch zu dem Podcast findet ihr natürlich wie immer in den Shownotes. Und wenn du Lust hast, dich mit ganz vielen Gleichgesinnten auszutauschen, schau doch mal in unserer Engineering Kiosk Discord Community vorbei. Dort hängen Entwickler und Entwicklerinnen, Architektinnen, Datenmenschen und Technerds aller Art rum, genau wie du, genau wie Wolfgang, genauso wie ich. Ihr wisst schon, was ich. Wir hören uns bei der nächsten Episode wieder. Bis dahin, frohe Weihnachten und eine wunderbare Adventszeit.