{"id":185660,"date":"2026-01-28T13:04:32","date_gmt":"2026-01-28T12:04:32","guid":{"rendered":"https:\/\/liora.io\/de\/?p=185660"},"modified":"2026-02-19T16:34:57","modified_gmt":"2026-02-19T15:34:57","slug":"pyinstaller-alles-was-man-wissen-muss","status":"publish","type":"post","link":"https:\/\/liora.io\/de\/pyinstaller-alles-was-man-wissen-muss","title":{"rendered":"PyInstaller: Alles, was man wissen muss"},"content":{"rendered":"\n<p><strong>Die Verteilung einer Python-Anwendung ist an sich nicht einfach, da dabei eine Vielzahl von Faktoren ber\u00fccksichtigt werden m\u00fcssen, darunter auch die eingesetzten Bibliotheken. PyInstaller vereinfacht diesen Prozess jedoch auf brillante Weise.<\/strong><\/p>\n\n\n\n<p>Wenn du die M\u00f6glichkeit hattest, eine Entwicklung mit einer <strong>Sprache wie Go oder Rust<\/strong> durchzuf\u00fchren, hast du es wahrscheinlich gesch\u00e4tzt, dass du beim Kompilieren eine einzige ausf\u00fchrbare Bin\u00e4rdatei erzeugen konntest. Die Verteilung einer solchen ausf\u00fchrbaren Datei ist einfach, da es nicht notwendig ist, w\u00e4hrend der Ausf\u00fchrung des Programms externe Ressourcen zu verwalten: <strong>OS-spezifische<\/strong> Komponenten, grafische Assets, andere Software usw. In den allermeisten F\u00e4llen muss der Empf\u00e4nger einer solchen ausf\u00fchrbaren Datei diese nur noch ausf\u00fchren.<\/p>\n\n\n\n<p>Wenn du in <a href=\"https:\/\/liora.io\/de\/python\">einer Sprache wie Python entwickelst<\/a>, ist das Kompilieren nicht so einfach, da die ausf\u00fchrbare Datei normalerweise Python auf dem Zielrechner ben\u00f6tigt, f\u00fcr die Umgebung (Windows, MacOS, eine bestimmte <a href=\"https:\/\/liora.io\/de\/linux-betriebssystem-warum-ist-es-das-beliebteste-os-fuer-entwickler\">Linux-Version<\/a>&#8230;) konfiguriert werden muss, Zugriff auf verschiedene externe Bibliotheken bietet&#8230;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-die-pyinstaller-losung\">Die PyInstaller-L\u00f6sung<\/h2>\n\n\n\n<p>Gl\u00fccklicherweise erkannte Gordon McMillan, ein <strong>bekannter Entwickler in der Python-Gemeinschaft,<\/strong> deutlich, dass es eine L\u00fccke in diesem Bereich gab. Im Jahr 2000 nahm er sich des Problems an, wie man aus einem <a href=\"https:\/\/liora.io\/de\/python-schulung\">Python-Skript eine v\u00f6llig eigenst\u00e4ndige ausf\u00fchrbare Datei erstellen<\/a> k\u00f6nnte, ohne dass auf dem Zielrechner eine Python-Installation und verschiedene Abh\u00e4ngigkeiten vorhanden sein m\u00fcssten. Sein Projekt wurde<strong> PyInstaller<\/strong> genannt.<\/p>\n\n\n\n<p>Wie so oft in der Python-Gemeinschaft trugen auch andere Entwickler ihren Teil dazu bei, und so entstand ein echter Dienst.<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img decoding=\"async\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/09\/pyinstaller-1.jpg\" alt=\"\" style=\"width:1000px;height:auto\" \/><\/figure>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/liora.io\/de\/unsere-aus-und-weiterbildungen\">Lerne die Anwendung von PyInstaller<\/a><\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-was-macht-pyinstaller\">Was macht PyInstaller ?<\/h2>\n\n\n\n<p>Wenn du ein <strong>Python-Skript an PyInstaller \u00fcbermittelst,<\/strong> erzeugt PyInstaller vier Ausgabeelemente:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Eine Anwendung,<\/strong> die als eigenst\u00e4ndige ausf\u00fchrbare Datei (.exe-Datei f\u00fcr Windows, .app-Datei f\u00fcr MacOS, Datei ohne Erweiterung f\u00fcr Linux) verf\u00fcgbar ist, die unver\u00e4ndert auf dem Zielrechner gestartet werden kann.<\/li>\n\n\n\n<li><strong>Ein dist-Ordner (Distribution),<\/strong> in dem die oben genannte Anwendung und auch die f\u00fcr ihre Ausf\u00fchrung notwendigen Abh\u00e4ngigkeiten enthalten sind.<\/li>\n\n\n\n<li>Das ist das Sch\u00f6ne daran: Du musst dich nicht um die Abh\u00e4ngigkeiten k\u00fcmmern, sondern PyInstaller sucht sie nach der Analyse deines Skripts und integriert sie nach und nach in das Projekt, genauso wie es auch einen Python-Interpreter integriert. Und wenn du &#8222;onefile&#8220; angegeben hast, befindet sich nur die ausf\u00fchrbare Datei in diesem Ordner Derjenige, der die Anwendung ausf\u00fchrt, wei\u00df oft nicht, dass sie in Python entwickelt wurde.<\/li>\n\n\n\n<li><strong>Ein build-Ordner,<\/strong> der tempor\u00e4re Dateien enth\u00e4lt, die bei der Erstellung der Anwendung erzeugt wurden und nicht f\u00fcr die Verteilung der Anwendung ben\u00f6tigt werden &#8211; er dient haupts\u00e4chlich der Fehlersuche.<\/li>\n\n\n\n<li><strong>Eine .spec-Datei:<\/strong> Dies ist eine Standardkonfigurationsdatei f\u00fcr die ausf\u00fchrbare Datei, die bei der ersten Ausf\u00fchrung von PyInstaller auf einem Python-Skript erstellt wird. Nachdem die .spec-Datei entsprechend angepasst wurde, kann PyInstaller nur mit dieser .spec-Datei erneut gestartet werden, um die gew\u00fcnschte ausf\u00fchrbare Anwendung zu erzeugen.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-grunde-fur-die-beliebtheit-von-pyinstaller\">Gr\u00fcnde f\u00fcr die Beliebtheit von PyInstaller<\/h2>\n\n\n\n<p>Wie man sich vorstellen kann, haben Python-Entwickler den <strong>PyInstaller<\/strong> wie einen Segen begr\u00fc\u00dft. Es hat sich herausgestellt, dass es leicht zu implementieren ist, auch wenn man es zum ersten Mal in Angriff nimmt. Die Verf\u00fcgbarkeit des <strong>Onefile-Modus<\/strong> wurde sehr positiv aufgenommen, da er eine besonders benutzerfreundliche ausf\u00fchrbare Datei f\u00fcr den Benutzer der Anwendung erzeugt.<\/p>\n\n\n\n<p>Au\u00dferdem hat <strong>PyInstaller<\/strong> den Vorteil, plattform\u00fcbergreifend zu sein: Es kann Code f\u00fcr Windows, MacOS, GNU\/Linux, aber auch f\u00fcr Unix-Umgebungen wie Solaris oder FreeBSD erzeugen.<\/p>\n\n\n\n<p>?Auch interessant:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><a href=\"https:\/\/liora.io\/de\/data-cleaning-python-programmierung-teil-3\" target=\"_blank\" rel=\"noopener\">Data Cleaning Python<\/a><\/td><\/tr><tr><td><a href=\"https:\/\/liora.io\/de\/pyspark-alles-wissenswerte-uber-die-python-bibliothek\" target=\"_blank\" rel=\"noopener\">PySpark &#8211; Alles wissenswerte<\/a><\/td><\/tr><tr><td><a href=\"https:\/\/liora.io\/de\/python-fehler-diese-solltest-du-vermeiden\" target=\"_blank\" rel=\"noopener\">Python &#8211; Vermeide diese Fehler<\/a><\/td><\/tr><tr><td><a href=\"https:\/\/liora.io\/de\/api-mit-python-datenbank-verbinden\" target=\"_blank\" rel=\"noopener\">API mit Python Datenbank verbinden<\/a><\/td><\/tr><tr><td><a href=\"https:\/\/liora.io\/de\/webhooks-in-python-was-sind-sie-und-wie-kann-man-sie-mit-python-verwenden\" target=\"_blank\" rel=\"noopener\">Webhooks in Python<\/a><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-welche-alternativen-gibt-es-zu-pyinstaller\">Welche Alternativen gibt es zu PyInstaller?<\/h2>\n\n\n\n<p>Es gibt verschiedene Alternativen zu PyInstaller, die jeweils bestimmte Vor- und Nachteile haben.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Cx_Freeze:<\/strong> Wie PyInstaller kann auch dieser Compiler ausf\u00fchrbare Dateien f\u00fcr Windows, MacOS und Linux erstellen. Diese Executables sind kleiner und k\u00f6nnen daher schneller geladen werden. Die Dokumentation von Cx_Freeze ist jedoch weniger umfangreich.<\/li>\n\n\n\n<li><strong>Nuitka:<\/strong> Dieser Compiler wandelt das Python-Skript in C-Code um, der nach der Kompilierung eine gute Leistung zeigt. Der Nachteil ist, dass die Kompilierungszeit verl\u00e4ngert wird.<\/li>\n\n\n\n<li><strong>BeeWare&#8217;s Briefcase:<\/strong> Die von ihnen erstellten Anwendungen k\u00f6nnen sowohl auf Computern als auch auf mobilen Plattformen laufen. Allerdings ist es weniger einfach, Dokumentation und Anwendungsbeispiele zu finden.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image is-resized\"><img decoding=\"async\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/09\/pyinstaller-2.jpg\" alt=\"\" style=\"width:1000px;height:auto\" \/><\/figure>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/liora.io\/de\/unsere-aus-und-weiterbildungen\">Entdecke unsere Kurse<\/a><\/div>\n<\/div>\n\n\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Die PyInstaller-L\u00f6sung\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"PyInstaller wurde im Jahr 2000 von Gordon McMillan entwickelt, um das Problem der Verteilung von Python-Anwendungen zu l\u00f6sen. Ziel war es, aus einem Python-Skript eine v\u00f6llig eigenst\u00e4ndige ausf\u00fchrbare Datei zu erstellen, die ohne vorinstallierte Python-Umgebung oder Abh\u00e4ngigkeiten auf dem Zielrechner l\u00e4uft. Das Projekt wurde durch Beitr\u00e4ge der Python-Community weiterentwickelt.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Was macht PyInstaller ?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"PyInstaller erzeugt aus einem Python-Skript vier Ausgabeelemente: 1. Eine eigenst\u00e4ndige ausf\u00fchrbare Datei (.exe, .app oder ohne Erweiterung). 2. Einen dist-Ordner mit der Anwendung und allen Abh\u00e4ngigkeiten (inklusive Python-Interpreter). 3. Einen build-Ordner mit tempor\u00e4ren Dateien f\u00fcr die Fehlersuche. 4. Eine .spec-Datei als Konfigurationsdatei, die bei erneuten Ausf\u00fchrungen verwendet werden kann. Im Onefile-Modus enth\u00e4lt der dist-Ordner nur die ausf\u00fchrbare Datei.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Gr\u00fcnde f\u00fcr die Beliebtheit von PyInstaller\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"PyInstaller ist bei Python-Entwicklern beliebt wegen seiner einfachen Implementierung, auch f\u00fcr Erstnutzer. Der Onefile-Modus erzeugt besonders benutzerfreundliche ausf\u00fchrbare Dateien. Zudem ist PyInstaller plattform\u00fcbergreifend und kann Code f\u00fcr Windows, MacOS, GNU\/Linux sowie Unix-Umgebungen wie Solaris oder FreeBSD erzeugen.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Welche Alternativen gibt es zu PyInstaller?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Hauptalternativen sind: Cx_Freeze (erstellt kleinere, schneller ladbare Executables f\u00fcr Windows, MacOS, Linux, aber mit weniger Dokumentation), Nuitka (wandelt Python in C-Code um \u2013 gute Leistung, aber l\u00e4ngere Kompilierungszeit) und BeeWare's Briefcase (Anwendungen laufen auf Computern und mobilen Plattformen, aber schwerer Dokumentation zu finden).\"\n      }\n    }\n  ]\n}\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Die Verteilung einer Python-Anwendung ist an sich nicht einfach, da dabei eine Vielzahl von Faktoren ber\u00fccksichtigt werden m\u00fcssen, darunter auch die eingesetzten Bibliotheken. PyInstaller vereinfacht diesen Prozess jedoch auf brillante Weise.<\/p>\n","protected":false},"author":88,"featured_media":185661,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"editor_notices":[],"footnotes":""},"categories":[2476],"class_list":["post-185660","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud-dev"],"acf":[],"_links":{"self":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/185660","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/users\/88"}],"replies":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/comments?post=185660"}],"version-history":[{"count":5,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/185660\/revisions"}],"predecessor-version":[{"id":218841,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/185660\/revisions\/218841"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media\/185661"}],"wp:attachment":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media?parent=185660"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/categories?post=185660"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}