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
Andy Grunwald (00:00:04 - 00:00:53)
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ß.
Dominik Geldmacher (Python Podcast) (00:00:54 - 00:01:01)
Herr Jochen, ich habe gehört, man kann in Python Electron extra benutzen, damit man Desktop Native Anwendungen hat auf unterschiedlichen Systemen.
Jochen Wersdörfer (Python Podcast) (00:01:04 - 00:01:23)
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.
Jochen Wersdörfer (Python Podcast) (00:01:23 - 00:01:28)
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.
Dominik Geldmacher (Python Podcast) (00:01:28 - 00:01:31)
Das heißt, wir wollen eine Anwendung direkt haben, die man benutzen kann, direkt irgendwie.
Jochen Wersdörfer (Python Podcast) (00:01:31 - 00:01:35)
Ein Binary geben oder so. Und normalerweise geht das ja mit Python nicht so einfach, oder es gibt da.
Dominik Geldmacher (Python Podcast) (00:01:35 - 00:01:40)
Auch diverse, weil Python keine komplizierte Sprache ist, wo man einfach so ein Paket erzeugt und das weitergibt.
Jochen Wersdörfer (Python Podcast) (00:01:40 - 00:01:45)
Ja, weil keine Binaries normalerweise rausfallen hinten irgendwo. Ein anderer Ansatz, den ich jetzt letztens.
Jochen Wersdörfer (Python Podcast) (00:01:45 - 00:01:50)
Irgendwie näher mir angucken durfte, ist halt einfach eine Electron App draus zu bauen.
Dominik Geldmacher (Python Podcast) (00:01:51 - 00:01:53)
Ah, Electron ist aber gar nicht Python, oder?
Jochen Wersdörfer (Python Podcast) (00:01:53 - 00:01:55)
Ne, genau, Electron ist, das ist JavaScript.
Jochen Wersdörfer (Python Podcast) (00:02:02 - 00:02:06)
Es gibt auch noch andere. Es gibt auch sowas, ein Rust geschriebenes Ding, das nennt sich Tauri. Da kriegt man die Binaries auch ein.
Jochen Wersdörfer (Python Podcast) (00:02:06 - 00:02:14)
Bisschen kleiner, weil man den im System eingebauten Browser benutzt und nicht halt irgendwie Electron Apps. Ein bisschen verschwenderisch, weil Elektron ist ein Browser.
Jochen Wersdörfer (Python Podcast) (00:02:16 - 00:02:22)
Aber in einem Electron Binder ist ein Chromium drin, oder? Genau, ist ein Chromium gebundelt sozusagen, was.
Jochen Wersdörfer (Python Podcast) (00:02:22 - 00:02:25)
Natürlich irgendwie ein Vorteil ist, weil man ist halt nicht darauf angewiesen, dass das.
Jochen Wersdörfer (Python Podcast) (00:02:25 - 00:02:29)
Halt auf jeder Browserversion funktioniert, sondern halt man die, auf der es funktionieren soll.
Jochen Wersdörfer (Python Podcast) (00:02:31 - 00:02:37)
Auch so einen Nachteil, dass das halt irgendwie für ein hundert fünfzig bis zwei hundert Megabyte irgendwie allein dafür sorgt, weil.
Dominik Geldmacher (Python Podcast) (00:02:38 - 00:02:47)
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.
Dominik Geldmacher (Python Podcast) (00:02:48 - 00:02:50)
Sich ein Binary Browser oder ein Anwendungsfenster.
Jochen Wersdörfer (Python Podcast) (00:02:50 - 00:02:55)
Das eigentlich muss nicht unbedingt aussehen wie ein Browser. Also ganz viele Anwendungen, die Leute so.
Jochen Wersdörfer (Python Podcast) (00:02:55 - 00:02:58)
Benutzen, sind tatsächlich Electron, aber dann hast.
Dominik Geldmacher (Python Podcast) (00:02:58 - 00:03:05)
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.
Jochen Wersdörfer (Python Podcast) (00:03:05 - 00:03:10)
Genau, zum Beispiel Django halt bekanntes Webframework für Python und ja, man kann mit.
Jochen Wersdörfer (Python Podcast) (00:03:12 - 00:03:15)
API oder mit Flask oder sonst irgendwie, völlig egal.
Jochen Wersdörfer (Python Podcast) (00:03:15 - 00:03:23)
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.
Jochen Wersdörfer (Python Podcast) (00:03:24 - 00:03:29)
Wenn man zum Beispiel Webseiten mit sowas baut wie Django oder Flask oder Fast API oder so, oder wie ich halt.
Jochen Wersdörfer (Python Podcast) (00:03:29 - 00:03:37)
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.
Jochen Wersdörfer (Python Podcast) (00:03:37 - 00:03:40)
Python da rein, irgendwie friemeln und dann.
Jochen Wersdörfer (Python Podcast) (00:03:40 - 00:03:42)
Die ganzen Abhängigkeiten, das Virtual muss man.
Jochen Wersdörfer (Python Podcast) (00:03:42 - 00:03:43)
Ja da auch irgendwie mit reinbauen, geht das überhaupt?
Jochen Wersdörfer (Python Podcast) (00:03:43 - 00:03:52)
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.
Dominik Geldmacher (Python Podcast) (00:03:52 - 00:04:00)
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.
Jochen Wersdörfer (Python Podcast) (00:04:00 - 00:04:02)
Man braucht dafür so einen relocatable Python.
Jochen Wersdörfer (Python Podcast) (00:04:02 - 00:04:03)
Interpreter, den man dann je nach Plattform.
Jochen Wersdörfer (Python Podcast) (00:04:03 - 00:04:07)
Da reinlegen muss, weil das sind natürlich unterschiedliche Binaries, je nachdem was das für eine Plattform ist.
Jochen Wersdörfer (Python Podcast) (00:04:08 - 00:04:14)
Ja, also UV macht es unter Umständen einfacher. Also okay, wollen wir die wirklich ganz fiesen kleinen Details?
Jochen Wersdörfer (Python Podcast) (00:04:14 - 00:04:18)
Ich finde das total spannend. Okay, ja, UV ist auch noch nicht.
Jochen Wersdörfer (Python Podcast) (00:04:18 - 00:04:27)
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.
Dominik Geldmacher (Python Podcast) (00:04:27 - 00:04:31)
Also könnt ihr Pip schmeißen, Pi schmeißen, alle wie, aber das nur am Rande.
Jochen Wersdörfer (Python Podcast) (00:04:31 - 00:04:44)
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.
Dominik Geldmacher (Python Podcast) (00:04:46 - 00:04:48)
Aber wer fuscht denn mit einem Virtual View?
Jochen Wersdörfer (Python Podcast) (00:04:49 - 00:04:50)
Das sind dann so Dinge, die ich dann tun musste.
Dominik Geldmacher (Python Podcast) (00:04:50 - 00:04:53)
Aber warum wollte irgendwas Monkey patchen, weil irgendwas nicht funktioniert.
Jochen Wersdörfer (Python Podcast) (00:04:53 - 00:05:09)
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.
Jochen Wersdörfer (Python Podcast) (00:05:09 - 00:05:11)
Habe, ich dann irgendwann in der Haft aufgegeben.
Dominik Geldmacher (Python Podcast) (00:05:11 - 00:05:14)
Das Hauptproblem bei Data Science Projekten ist meistens, dass sie irgendwelche Requirements.
Dominik Geldmacher (Python Podcast) (00:05:15 - 00:05:28)
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.
Jochen Wersdörfer (Python Podcast) (00:05:29 - 00:05:31)
Wenn dir irgendwie die Fehlermeldung sagt, ja.
Jochen Wersdörfer (Python Podcast) (00:05:31 - 00:05:36)
Jetzt, also Entschuldigung, ich brauche jetzt aber wirklich dringend einen Fortran Compiler auf dem Windows, dann. Also ich würde mal sagen, die meisten.
Jochen Wersdörfer (Python Podcast) (00:05:36 - 00:05:39)
Leute geben dann an dieser Stelle auf, weil das ist halt einfach dann das.
Jochen Wersdörfer (Python Podcast) (00:05:41 - 00:05:44)
Ich in meinem Leben nicht haben, das muss jemand anders machen und dann ist vorbei.
Jochen Wersdörfer (Python Podcast) (00:05:44 - 00:05:52)
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.
Jochen Wersdörfer (Python Podcast) (00:05:53 - 00:06:20)
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.
Jochen Wersdörfer (Python Podcast) (00:06:20 - 00:06:25)
Einem so, ey, du hast hier irgendwie ganz komische Sachen gemacht, ne, das starte ich nicht so, das geht nicht.
Jochen Wersdörfer (Python Podcast) (00:06:26 - 00:06:32)
Also man kann sich ein relativ leicht kaputt machen und deswegen benutze ich kein.
Dominik Geldmacher (Python Podcast) (00:06:36 - 00:06:41)
Die Link Version kann man ändern, also welche, ob er links benutzt oder direkte Links oder nicht linked oder sowas.
Jochen Wersdörfer (Python Podcast) (00:06:41 - 00:06:45)
Vielleicht wenn man Spezial Windows Fähigkeiten hat, kann man das auch noch irgendwie in Ordnung bringen.
Jochen Wersdörfer (Python Podcast) (00:06:45 - 00:06:51)
Das mag sein, aber ich habe dann irgendwie nach einem halben Tag oder einem Tag irgendwie aufgegeben, nicht hingekriegt.
Dominik Geldmacher (Python Podcast) (00:06:51 - 00:07:05)
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.
Jochen Wersdörfer (Python Podcast) (00:07:05 - 00:07:08)
Einem kompletten Data Science Stack, wo man halt irgendwie so wirklich wilde Sachen macht.
Dominik Geldmacher (Python Podcast) (00:07:08 - 00:07:24)
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.
Jochen Wersdörfer (Python Podcast) (00:07:24 - 00:07:27)
Genau. Und was auch noch sehr cool ist, ist vielleicht noch zum Schluss, wenn man.
Jochen Wersdörfer (Python Podcast) (00:07:27 - 00:07:33)
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.
Jochen Wersdörfer (Python Podcast) (00:07:33 - 00:07:44)
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.
Dominik Geldmacher (Python Podcast) (00:07:50 - 00:07:56)
Cool, dann kann ich meine ganze Anwendung direkt komplett dann auch als Paket zusammenschüren lassen, dann habe ich den Download.
Jochen Wersdörfer (Python Podcast) (00:07:56 - 00:07:58)
Oder du kannst dir am Schluss die Binaries runterladen und verbreiten.
Jochen Wersdörfer (Python Podcast) (00:08:00 - 00:08:04)
Musst dafür nicht extra noch Windows oder Mac dir irgendwo besorgen.
Dominik Geldmacher (Python Podcast) (00:08:06 - 00:08:11)
Deutlich einfacher als Python und Electron ist da so ein winning Team, würde ich sagen, für so ein Anwending.
Jochen Wersdörfer (Python Podcast) (00:08:12 - 00:08:15)
Cool, komisch und bloated und so, das muss man auch sagen.
Jochen Wersdörfer (Python Podcast) (00:08:15 - 00:08:20)
Das schon, aber man kann damit, wenn man sonst gedacht hätte, das geht gar nicht.
Dominik Geldmacher (Python Podcast) (00:08:21 - 00:08:25)
Ja, genau. Also wenn ihr für eure Großeltern oder im Corporate Umfeld irgendwas machen wollt, dann.
Jochen Wersdörfer (Python Podcast) (00:08:25 - 00:08:30)
Ist das genau das richtige Corporate. Gut, dann frohe Weihnachten.
Andy Grunwald (00:08:30 - 00:09:09)
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.