Die Programmiersprache Python erfreut sich schon lange großer Popularität. Webbasierte Entwicklungsumgebungen umgehen die Hürde der Installation und erleichtern damit den Einstieg.
Alte Hasen grenzen dank ihrer Erfahrungen klar voneinander ab, was sie zum Programmieren benötigen und was sich eher als hinderlich erweist. Für den Erfolg genügt häufig die Kombination aus Texteditor und Python auf der Kommandozeile. Für mehr Schnickschnack flanschen Sie später einfach das Erforderliche an. Mehr Informationen dazu lesen Sie beispielsweise im Artikel zu den Erweiterungen von Vim nach [1].
Als Einsteiger müssen Sie oft erst einmal ausprobieren, was überhaupt funktioniert – so machen Sie sich Schritt für Schritt mit der Sprache vertraut. Eine integrierte Entwicklungsumgebung (IDE) bietet dabei zusätzliche Unterstützung: Mit Syntaxhervorhebung, einer automatischen Ergänzung von Bezeichnern aus Modulen und Schlüsselworten sowie einer Zeilennummerierung im Editorfenster bringt Sie ein solcher Komfort-Editor schon ein gutes Stück weiter, besonders beim Lokalisieren von Fehlern im Programmcode. Aryan Gupta nimmt in einer nützlichen Übersicht [2] etliche IDEs unter die Lupe. Wir stellen eine Auswahl daraus genauer vor und bewerten die Kandidaten in Bezug auf den Einstieg mit Python.
Ohne Installation
Wenn die Installation einer Software holpert, sorgt das stets für Ärger. Dementsprechend konzentrieren wir uns in diesem Artikel darauf, die Programmiersprache Python zu benutzen, ohne dafür vorher überhaupt eine solche Installation vornehmen zu müssen. Das hat bereits jemand anderes erledigt und alles glattgezogen. Besonders Paket- und Versionsabhängigkeiten gehören zu den Stolperfallen, vor allem Aktualisierungen von Bibliotheken rauben einem durchaus den Enthusiasmus. Üblicherweise schaffen die Paketverwaltungen der Linux-Distributionen das Problem aus der Welt, ganz ausschließen lässt es sich jedoch trotzdem nicht.
Konfliktfreiheit zwischen Bibliotheken versprechen virtuelle Umgebungen, genannt Virtualenv [3]. Obwohl ihr Einsatz vielfach empfohlen wird, lässt sich dieser Schritt nicht immer vermitteln. Das gilt vor allem, wenn es lediglich darum geht, den sprichwörtlichen Zeh ins Wasser zu halten und Sie nur erst einmal herausfinden möchten, ob Sie mit den Elementen der Sprache klarkommen. Virtualenv lässt sich genauso gut auf den zweiten Schritt verschieben, was bei komplexeren Programmierprojekten ohnehin mehr Sinn ergibt.
Fremdinstallationen
Für Python gibt es unzählige Bibliotheken, die so gut wie keine Wünsche für eigene Entwicklungen offenlassen. Eine webbasierte IDE lässt sich häufig nicht selbst ergänzen. Die nutzbaren Bibliotheken hängen vom Administrator ab, der den Server hinter der Entwicklungsumgebung pflegt.
Es gibt drei Wege, um herauszufinden, was funktioniert. Zunächst hilft schlichtes Ausprobieren: Zum einen können Sie über das import-Statement testen, ob ein Modul oder eine Bibliothek installiert ist. Alternativ fragen Sie direkt beim Admin nach oder lesen die Dokumentation. Zweitens sorgt gegebenenfalls das Kommando help("modules") in einer Python-Shell für klare Verhältnisse (Listing 1). Es ermittelt alle installierten Python-Module.
Dasselbe gelingt als dritte Variante auf der Kommandozeile über den Aufruf python3 -c 'help("modules")'. Der Parameter -c veranlasst den Python-Interpreter, die als Parameter übergebene Anweisung als Code zu interpretieren und auszuführen. Beachten Sie dabei bitte die korrekte Verwendung der einfachen und doppelten Anführungszeichen im Aufruf. Das Ergebnis fällt analog zum Beispiel aus Listing 1 aus.
Die drei Schritte haben wir für diesen Artikel bereits hinter uns gebracht und berichten, welche IDEs wir für geeignet halten, um erfolgreich in Python einzusteigen. In die Betrachtungen fließen zudem Rückmeldungen von Teilnehmern aus vom Autor gehaltenen Python-Schulungen ein.
Listing 1
Installierte Python-Module ermitteln
Python 3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> help("modules")
Cryptodome binascii jinja2 reprlib
IPython bisect joblib requests
PIL black json resource
PyQt5 blackd jsonpointer reuse
Xlib bleach jsonschema rfc3987
__future__ blib2to3 jupyter rlcompleter
__hello__ boolean jupyter_client roman
__phello__ bottle jupyter_core runpy
_abc bottleneck jupyterlab_pygments sched
_aix_support brotli keyword scipy
...
Online Python
Ein unkompliziertes, übersichtliches Design; einfach und schnell zu bedienen – allesamt Ziele, die sich die Plattform Online Python [4] gesteckt hat. Unserer Ansicht nach hält sie das Versprochene und wartet obendrein mit interessanten Zusätzen auf. Wie Abbildung 1 zeigt, umfasst die Bedienoberfläche einen Eingabebereich für den Programmcode (oben) mit Syntaxhervorhebung, Zeilennummern und Autovervollständigung sowie ein Ausgabefenster (unten), um zu sehen, was der Programmcode bei der Ausführung ausspuckt. Das Ausgabefenster schalten Sie über das Icon >_ in der Symbolleiste bei Bedarf in ein Terminal mit einer Python-Shell um.

Abbildung 1: Die schlanke Benutzeroberfläche von Online Python mit dem Eingabebereich oben und dem Ausgabefenster unten.
Eine überschaubare Anzahl von Schaltern ergänzt die Auswahl: Der Schalter ganz oben links dient zum Laden lokaler Dateien, der direkt daneben zum Speichern. Die beiden anderen Buttons liefern die Historie der Eingaben rück- und vorwärts. Über das Mondsymbol wechseln Sie zwischen heller und dunkler Darstellung. Über das Zahnrad-Icon ganz rechts gelangen Sie zur Seiteninfo und den Bedieneinstellungen. Letztere fallen recht umfangreich aus, wie Sie in Abbildung 1 am rechten Bildrand sehen. Hier lassen sich neben weiteren Farben beispielsweise die Bedienmodi des Editors einstellen – er benimmt sich wahlweise wie Vim, Emacs, Sublime oder Visual Studio Code. Hinzu kommen etliche Darstellungsoptionen wie die Zeilenlänge und Einrückungstiefe (Tabs vs. Leerzeichen).
Zwischen den beiden Fenstern gibt es zwei weitere Schaltflächen und ein Eingabefeld. Der grüne Knopf, mit Run beschriftete Button startet den Interpreter, der weiße (Share) erlaubt das Teilen der Editorinstanz mit anderen Benutzern für einen ausgewählten Zeitraum – einen Tag, eine Woche oder sechs Monate. Damit arbeiten Sie gemeinsam an einem Projekt. In welcher Cloud Online Python den Programmcode ablegt, erschloss sich uns allerdings nicht. Über das große Eingabefeld rechts daneben übergeben Sie bei Bedarf Aufrufparameter an Ihr Programm, was sich als sehr nützlich erweist.
Mit einfacherem Programmcode zum Warmwerden mit der Sprache kommt Online Python gut zurecht und macht soweit einen leistungsfähigen Eindruck. Als Basis dient die Python-Version 3.8. Sie ist zwar schon etwas älter, genügt aber für die ersten Schritte. Als Kritikpunkt fällt auf, dass sich die in der Hilfe genannten Tastenkürzel nicht vollständig mit den Beschriftungen der Schaltflächen decken – hier war Ausprobieren angesagt.
Da die Plattform kostenfrei zur Verfügung steht, jedoch nicht als freie Software gekennzeichnet ist, dürfen Sie sich zu Beginn durch eine Kekslandschaft klicken, um alle datenerhebenden und werbefinanzierenden Elemente abzuschalten. Darüber hinaus fehlen Informationen zum Betreiber der Webseite. Das stimmt nachdenklich, doch unser Fazit zu Online Python lautet grundsätzlich: nützlich, durchdacht und erfüllt seinen Zweck.
Python Online Editor
Python Online Editor [5] mutet ein wenig schlichter an als Online Python. Auch die Bedienoberfläche dieses Werkzeugs setzt sich aus zwei Fenstern zusammen: einem Editorfenster links mit Zeilennummern und Syntaxhervorhebung sowie einem Ausgabefenster rechts (Abbildung 2). Letzteres lässt sich in den Modus Python Shell umschalten.
Die Webseite ist mehrsprachig ausgelegt, über den entsprechenden Link oben rechts wechseln Sie zwischen Englisch und Arabisch. Aus einem Dutzend anderer Sprachen wählen Sie über die Schaltfläche mit der Flagge unten rechts die gewünschte aus. Manche der automatisierten Übersetzungen lassen jedoch schmunzeln. Beispielsweise wird aus Share das Wort Aktie, was zwar linguistisch nicht verkehrt ist, aber Teilen würde hier doch deutlich besser in den Kontext passen.
Die Anwendung unterstützt Python 3 bis Version 3.13. Die gewünschte Version stellen Sie zur Laufzeit ein und können damit unterschiedliche Varianten vergleichen. Zudem erlaubt Python Online Editor das Hoch- und Herunterladen von Programmcode im Editor sowie einen Austausch via E-Mail. Kollaboratives Arbeiten an demselben Code klappt derzeit nicht.
Auch hier gilt dasselbe wie bei Online Python: Einfacheren Programmcode setzt das Tool fehlerfrei und flott um. Auf eine Dokumentation müssen Sie allerdings bislang verzichten. Die Liste der unterstützten Python-Module scheint kurz; ob Sie einen Treffer landen, ist dementsprechend reine Glückssache. Die integrierte Python-Shell bindet das in Listing 1 genutzte Kommando help() (noch) nicht ein und erlaubt deshalb keine entsprechende Abfrage.
Zum Ausprobieren eignet sich der Python Online Editor durchaus, für komplexere Projekte empfiehlt er sich eher nicht. Negativ fällt auch hier auf, dass sich trotz viel Begleittext keine Lizenz und keine Information zum Anbieter finden.
Python Fiddle
Das Projekt Python Fiddle [6] hebt sich deutlich von den beiden Vorgängern ab: Es macht einen professionelleren Eindruck, und die IDE wirkt durchdachter. Die Navigation auf der Webseite spielt sich auf mehreren Ebenen ab. Neben dem Projektnamen oben links befindet sich ein Schalter zum Wechseln der Darstellung: Ein Klick auf das Mond-Icon lädt ein dunkles Theme, einer auf das Sonnensymbol hingegen ein helleres Theme. Abbildung 3 zeigt das Theme für den Tag.

Abbildung 3: Python Fiddle bietet kontrastreiche Themes zum angenehmen Arbeiten sowohl für den Tag (hier zu sehen) als auch für die Nacht.
Oben rechts schließt sich ein Auswahlmenü an, das zu Beispielen, Programmieraufgaben (Challenges), Anleitungen (Tutorials), einer Erweiterung für den Webbrowser Chrome und zum Nutzerbereich (Saved, Sign in) führt. Darunter sitzen eine Navigationsleiste und der Schalter Share. Über die Knöpfe in der Navigationsleiste starten Sie die Programmausführung (>>), springen zwischen einzelnen Checkpoints hin und her, laden Programmcode ins Editorfenster beziehungsweise speichern ihn oder schalten über das Uhrensymbol zwischen den Checkpoints um. Der Knopf rechts daneben wechselt zwischen der Programmausgabe und einer Detailansicht mit Programmcode. Der vorletzte Schalter in der Reihe löscht die Eingabe, der letzte öffnet ein Hilfemenü mit Tipps und Tricks.
Über das erwähnte Share erzeugen Sie einen Link, über den Sie Ihr Eingabefeld anderen Nutzern zugänglich machen. Außerdem legen Sie fest, ob die Mitarbeitenden den freigegebenen Inhalt nur lesen oder auch editieren dürfen. In Abbildung 3 sehen Sie das Popup mit dem erzeugten Link.
Über das zentrale Eingabefeld tippen Sie den Programmcode ein. Es bietet zwar eine Syntaxhervorhebung, verzichtet jedoch auf die Anzeige von Zeilennummern. Die Eingabefelder lassen sich vervielfachen und umsortieren; sie fungieren dann wie in Jupyter Notebooks als Zellen und werden nacheinander ausgewertet. Das Eingabefeld darunter bindet Sie an einen KI-Prompt an. Nach einer Registrierung beim Projekt erhalten Sie den benötigten API-Key, um das Feature zu nutzen. Dabei bleibt allerdings im Dunkeln, an welche KI-Engine Python Fiddle andockt.
Unter beiden Eingabefeldern findet sich ein Button mit einem >, über den Sie den Programmcode ausführen beziehungsweise die KI-Anfrage abschicken. Die Ausgabe erscheint daraufhin unerwarteterweise auf grauem Hintergrund zwischen den beiden Eingabefeldern. Dementsprechend entpuppt sie sich erst auf den zweiten Blick als Ergebnis der Programmausführung. Hinterlegt die Bibliothek das Ergebnis nicht von sich aus farbig, wird es schwierig. Ein kleiner schwarzer Rahmen um das Resultat herum wäre zur besseren Lesbarkeit sehr hilfreich.
Python Fiddle basiert auf dem Projekt Pyodide [7]. Diese Python-Distribution für den Webbrowser und Node.js setzt wiederum auf WebAssembly (WASM [8]) auf, einem vom W3C betreuten binären Ausführungsformat für Stack-basierte VMs. Pyodide ist Teil des Mozilla-Projekts und eine Portierung von CPython [9]. Es ebnet den Weg zur Installation und zum Ausführen von Python-Paketen im Webbrowser. Dementsprechend steht zwar nicht der gesamte Umfang von Python zur Verfügung, aber zumindest Allzweckpakete wie Re, PyYAML, Lxml sowie einige wissenschaftliche Pakete wie NumPy, Pandas, SciPy, Matplotlib und Scikit-learn. Damit kommen Sie weit über den Ausprobierrahmen hinaus.
Bitte beachten Sie, dass Sie mitunter etwas Geduld aufbringen müssen, bis die Ausgabe gerendert ist – beobachtet haben wir das bei den komplexeren Paketen wie NumPy, Plotly und Matplotlib. Ein anderer Effekt sorgt für deutlich mehr Unmut: Wenn Sie vom Fenster des Webbrowsers zu dem eines anderen Programms und dann wieder zum Webbrowser zurückwechseln, rendert Python Fiddle die Ausgabe im Browser-Fenster erneut. Das irritiert und verlangsamt das Arbeiten. Nichtsdestoweniger empfiehlt sich Python Fiddle als lohnenswertes Werkzeug. Die hinterlegten Beispiele erleichtern den Einstieg erheblich und regen an, mit bislang unbekannten Bibliotheken zu spielen.
Trinket
Das kommerziell angelegte Projekt Trinket [10] spielt in derselben Liga wie Python Fiddle. Es präsentiert sich als Webseite mit kollaborativem Editor und dem Slogan “Share Code from any Device”. Wie Sie bisher gesehen haben, kann das kaum als Alleinstellungsmerkmal gelten – das beherrschen andere Werkzeuge genauso. Interessanter wird es, wenn die IDE im größeren Umfang über einen längeren Zeitraum zum Einsatz kommt, beispielsweise im Rahmen einer Ausbildung oder eines Projekts. Dabei kommen die kostenpflichtigen Nutzungspläne von Trinket für das Bereitstellen der IDE für Schüler und Lerngruppen ins Spiel, die wir nur erwähnen, aber nicht weiter besprechen.
Trinket stellt einen Editor mit Syntaxhervorhebung und Nummerierung der Codezeilen bereit, zudem können Sie mehrere Dateien gleichzeitig öffnen. Hinter dem Symbol mit den drei waagerechten Strichen verbirgt sich ein Menü, das zur Modulliste führt, aber Sie ebenso das Editorfenster zurücksetzen lässt. Weitere Menüpunkte umfassen das Umschalten des Editors in den Vollbildmodus, das Herunterladen des erstellten Programmcodes, verschiedene Möglichkeiten zum Teilen des Editors mit anderen sowie das Ändern der Schriftgröße.
Weitere Knöpfe schalten zwischen der Ausführung des Programmcodes und einer Python-Shell um (Abbildung 4), verlinken zur Modulliste sowie zu den Möglichkeiten zur Kollaboration mit anderen Nutzern. Letzteres gelingt via E-Mail, Link, Einbinden in eine Webseite oder Downloads. Unter dem Menü schließt sich das Editorfenster mit dem Programmcode links und der Ausgabe rechts daneben an. Das Ausgabefenster teilt sich waagerecht, sobald Sie den Modus für die Python-Shell aktivieren. Das erlaubt das Mitverfolgen der Programmausführung.

Abbildung 4: Trinket verfügt über Syntaxhervorhebung und Zeilennummern und wirbt mit dem Versprechen, Code von jedem Gerät aus zu teilen.
Positiv fällt die Übersicht zu den unterstützten Python-Bibliotheken auf. Neben den Namen der Module und Bibliotheken listet Trinket die darin enthaltenen Funktionen beziehungsweise Methoden auf, häufig samt Anwendungsbeispiel in Form eines kurzen Programmcodes (Abbildung 5). Das ersetzt zwar nicht die Dokumentation der Module, senkt aber die Einstiegshürde. Als Module stehen unter anderem PyPlot, PyGal, Re, NumPy und Turtle zur Auswahl. Damit lassen sich auch Animationen umsetzen. Aus unserer Sicht liefert Trinket damit insgesamt eine saubere Basis zum Einstieg.

Abbildung 5: Zu den unterschiedlichen Modulen und Bibliotheken zeigt Trinket Beispielcode, hier für Balkengrafiken bei PyGal.
Jupyter Notebook & Co.
Die drei Werkzeuge Jupyter Notebook, JupyterLab und JupyterLite sind vollwertige, interaktive Python-IDEs im Webbrowser. Sie werden beim Jupyter-Projekt [11] entwickelt, gepflegt und kostenlos als freie Software angeboten. Mittlerweile zählen sie in vielen Forschungsbereichen zum De-facto-Standard beim gemeinsamen Entwickeln von Software sowie dem Austauschen und Auswerten erfasster Daten bis hin zur Dokumentation und Präsentation der Ergebnisse.
Während Jupyter Notebook die Basis bildet und ursprünglich lediglich zum Programm- und Datenaustausch gedacht war, steckt hinter JupyterLab eine Weiterentwicklung mit der Ergänzung um Dokumentation und Präsentation. Bei JupyterLite handelt es sich um eine auf WebAssembly (Wasm) basierende Version, deren Inhalte als statische Github-Seiten ausgeliefert werden.
Alle drei Vertreter kommen mit einer umfangreichen Auswahl an Python-Bibliotheken daher und bieten mehrere Eingabefelder (Zellen) mit interaktiver Codeauswertung, Bezugnahme aufeinander sowie Syntaxhervorhebung und Autovervollständigung. Abbildung 6 zeigt die Nutzung von Matplotlib und NumPy in JupyterLite mit der Ausgabe als Balkengrafik mittels PyPlot. Damit bleiben beim Entwickler keine Wünsche offen.
Marimo
Das Projekt Marimo [12] löste durch einen Artikel [13] in der Zeitschrift iX Aufmerksamkeit aus. Als Alternative zu Jupyter greift Marimo auf dasselbe Konzept zurück und nutzt Eingabefelder (“Zellen”). Der Unterschied besteht jedoch darin, dass es reaktiv arbeitet und die einzelnen Zellen ihre Abhängigkeit voneinander kennen. Bei einer Änderung des Programmcodes in einer Zelle und einer anschließenden Neuberechnung wendet das Werkzeug stets dieselbe Ausführungsreihenfolge an. Das führt zu verlässlicheren Ergebnissen, weil Seiteneffekte durch globale Variablen entfallen.
Der Quellcode von Marimo findet sich vollständig auf Github und PyPI [14]. Live ausprobieren lässt es sich über eine Webseite [15], die als hübsche Spielwiese mit vielen interaktiven Beispielen daherkommt. Das weckt die Neugierde. In Abbildung 7 sehen Sie Elemente zu Bedienschnittstellen (“Dashboards”), hier in Form eines Auswahlmenüs kombiniert mit einem einfachen Schieberegler, um die Anzahl der dargestellten Bilder zu vergrößern oder zu verringern.
Analog zu den Werkzeugen aus der Jupyter-Serie wartet das Editorfenster mit Syntaxhervorhebung, Zeilennummern und einer Autovervollständigung für Bezeichner und Python-Schlüsselworte auf. Marimo spielt mit Python ab Version 3.8 zusammen und erlaubt dementsprechend zeitgemäßes Entwickeln.
Ausblick und Fazit
Zusätzlich haben wir uns nach einer Art Python Live-CD/DVD umgesehen, jedoch bislang nichts gefunden, was direkt diesen Namen trägt. Ins Blickfeld geriet allerdings das Fedora Python Classroom Lab [16]. Das ungefähr 2 GByte große Image enthält mehrere Python-Veröffentlichungen von Version 2 bis 3.11, dazu MicroPython, die Dokumentationsumgebung Sphinx sowie NumPy, Matplotlib, Pandas und SymPy.
Als webbasierte IDEs stehen Jupyter Notebooks und JupyterLab bereit. Der einsteigerfreundliche Editor Mu [17] rundet das Lab ab (Abbildung 8). Wir testeten die Live-CD mit 4 GByte RAM und zwei Kernen in VirtualBox. Damit erreichten wir eine passable Geschwindigkeit, Python ließ sich ruckelfrei ausführen und gut erlernen.

Abbildung 8: Fedora Python Classroom Lab bringt unter anderem die IDE JupyterLab und den Editor Mu mit.
Die besprochenen Werkzeuge repräsentieren lediglich einen kurzen Streifzug durch die Welt der Python-IDEs. Einen klaren Favoriten konnten wir dabei nicht identifizieren. Python Fiddle und Fedora Python Classroom Lab eignen sich aus unserer Sicht am besten als Ausgangspunkte zum Erkunden und Lernen. Für umfangreichere Projekte sollten Sie Marimo nicht unterschätzen, auch wenn derzeit (noch?) Jupyter Notebook und JupyterLab dieses Feld dominieren. (csi)
Der Autor
Frank Hofmann arbeitet zumeist von unterwegs aus als Entwickler, Trainer und Autor. Bevorzugte Arbeitsorte sind Berlin, Genf und Kapstadt. Er gehört zu den Verfassern des Debian-Paketmanagement-Buchs [18].
Infos
-
Vim-Settings: Frank Hofmann, “Angespitzt”, LU 01/2024, S. 40: https://www.linux-community.de/49974
-
Aryan Gupta: 17 Most Popular Python IDEs in 2024: Code Like a Pro: https://www.simplilearn.com/tutorials/python-tutorial/python-ide
-
Virtualenv, Python-Version: Alles über virtuelle Umgebungen: https://datascientest.com/de/virtualenv-python-version-alles-ueber-virtuelle-umgebungen
-
Online Python: https://www.online-python.com
-
Python Online Editor: https://pythononlineeditor.com
-
Python Fiddle: https://python-fiddle.com
-
Pyodide: https://pyodide.org/en/stable/
-
WebAssembly: https://webassembly.org
-
CPython: https://github.com/python/cpython
-
Trinket: https://trinket.io
-
Jupyter Notebooks: https://jupyter.org
-
Marimo: https://marimo.io
-
“Eine Jupyter-Alternative, die Abhängigkeiten berücksichtigt”: https://www.heise.de/select/ix/2024/5/2401910422991779335
-
Marimo auf PyPI: https://pypi.org/project/marimo/
-
Marimo als Webapplikation: https://marimo.app
-
Fedora Python Classroom Lab: https://fedoraproject.org/de/labs/python-classroom
-
Debian-Paketmanagement-Buch, https://dpmb.org








