Suchen

Definition Was ist Streamlit?

Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel

Streamlit ist eine Bibliothek und ein Framework für Python. Streamlit lässt sich zum Erstellen von Web-Apps und zur Visualisierung oder Analyse von Daten einsetzen. Datenwissenschaftler können mit einfachen Python-Skripten interaktive Web-Apps mit grafischer Benutzeroberfläche und anschaulicher Datenvisualisierung erstellen und über das Web der Allgemeinheit zur Verfügung stellen.

Firma zum Thema

(Bild: © aga7ta - stock.adobe.com)

Streamlit ist der Name einer Bibliothek und eines Frameworks für die Programmiersprache Python. Mithilfe von Streamlit lassen sich schnell und mit wenigen Zeilen Programmcode interaktive Web-Apps mit grafischer Benutzeroberfläche und anschaulicher Datenvisualisierung erstellen. Die Web-Apps können anschließend der Allgemeinheit über das Internet zur Verfügung gestellt werden.

Datenwissenschaftler nutzen Streamlit für Datenvisualisierungen und Datenanalysen, beispielsweise im Umfeld des maschinellen Lernens. Streamlit verkürzt die Zeit für das Programmieren einer Web-App, da das Framework einen Großteil der Arbeit zur Bereitstellung des Frontends und des User Interfaces übernimmt. Die Web-Apps sind komplett in Python programmiert. Streamlit ist mit zahlreichen weiteren Libraries und Frameworks wie Bokeh, Keras, PyTorch, NumPy, TensorFlow, Matplotlib, Altair, Seaborn, Pandas und vielen weiteren kompatibel.

Die Software ist Open Source und steht unter freier Apache-Lizenz 2.0 kostenlos zur Verfügung. Erschienen ist sie im Jahr 2019. Die Entwicklung fand vom gleichnamigen Software-Unternehmen Streamlit statt, das im Jahr 2018 von Adrien Treuille, Amanda Kelly und Thiago Teixeira gegründet wurde. Es hat seinen Sitz in San Francisco, Kalifornien.

Motivation für die Entwicklung von Streamlit

Datenwissenschaftler, die ihre Daten und Datenanalysen visualisieren oder interaktive Applikationen bereitstellen möchten, haben häufig wenig Erfahrung und Know-how in der Programmierung grafischer Benutzeroberflächen und optisch ansprechender Web-Layouts. Meist ist die Programmierung solcher Apps zweigeteilt. Die Datenwissenschaftler kümmern sich um die Kernlogik der Anwendung rund um die Daten und Datenanalysen, ein anderes Entwicklerteam übernimmt die Aufgabe, das User Interface und den Frontend zu programmieren. Die Teams müssen sich abstimmen und eng zusammenarbeiten. Das macht den Entwicklungsprozess aufwendig und kostet viel Zeit.

Die Hauptmotivation für die Entwicklung von Streamlit ist, dass den Datenwissenschaftler ein Framework zur Verfügung steht, mit dem sie selbst die komplette Web-App inklusive Frontend und grafischer Benutzeroberfläche mit einfachen Python-Skripten programmieren können.

Notwendige Schritte zur Nutzung von Streamlit und zum Erstellen einer App

Um Streamlit für eigene Projekte und das Erstellen von Web-Apps zu nutzen, sind nur wenige Schritte notwendig. Ist Python auf dem Rechner vorhanden, lässt sich Streamlit über den Package Installer von Python (PIP) installieren. Anschließend steht Streamlit für die Nutzung zur Verfügung. Für eine eigene Web-App muss nur noch ein eigene Python-Datei angelegt und Streamlit importiert werden. Anschließend können die Befehle für die eigene App in die Datei eingetragen werden. Ausführen lässt sich das Skript per Befehl "streamlit run [Dateiname]". Streamlit öffnet ein Browserfenster und setzt den Programmcode in visualisierte, interaktive Elemente um.

Mögliche Elemente sind beispielsweise Diagramme, Tabellen, Maps, interaktive Widgets, Sidebars und Vieles mehr. Die erstellte App lässt sich bei Bedarf über das Internet mit anderen teilen. Ist die App in einem öffentlichen GitHub Repository gespeichert, kann sie über share.streamlit.io für die Allgemeinheit freigegeben werden.

Streamlit for Teams

Streamlit for Teams ist eine Enterprise-Lösung zum Verwalten, Bereitstellen und Teilen von Streamlit-Apps, die sich aktuell (Stand Ende 2020) noch in Entwicklung befindet. Im Gegensatz zu einer öffentlichen Bereitstellung einer Web-App bietet Streamlit for Teams erweiterte Funktionen wie sicheres Single-Click Deployment, Versionierung, Authentifizierung, Logging und Einiges mehr.

Vorteile des Frameworks Streamlit

Mit Streamlit lassen sich Daten und Datenanalysen mit wenigen Zeilen Programmcode in optisch ansprechende, interaktive Web-Apps verwandeln und anderen zur Verfügung stellen. Die komplette Programmierung findet in Python statt. Die Möglichkeiten zahlreicher weiterer Python-Bibliotheken und -Frameworks lassen sich vollständig nutzen. Da keine speziellen Kenntnisse im Programmieren eines Frontends oder User Interfaces notwendig sind, sind Datenwissenschaftler in der Lage, ihre Web-Apps in Eigenregie zu programmieren. Ein interaktives Widget in eine Anwendung einzufügen ist vergleichbar mit dem Deklarieren einer Variablen. Auch mit Webprotokollen und Webstandards wie HTTP-Requests oder HTML und CSS muss sich der Programmierer nicht beschäftigen. Wer Python-Skripte schreiben kann, kann auch Web-Apps mit Streamlit erstellen. Bei einer Streamlit App handelt es sich um eine einfache Python-Datei. Die gewohnten Python-Editoren und -Debugger sind nutzbar. Der Programmcode ist sauber strukturiert, einfach zu lesen und übersichtlich.

Die Entwicklungszeiten für Anwendungen verkürzen sich dank Streamlit enorm. Streamlit ist als Open-Source-Software frei verfügbar und steht unter Apache-Lizenz. Das Framework ist für kommerzielle, private oder wissenschaftliche Anwendungen nutzbar. Über die Streamlit Sharing-Plattform lassen sich Web-Apps über das Internet teilen und der Allgemeinheit zur Verfügung stellen. Der browserbasierte Ansatz der App ermöglicht die plattform- und geräteunabhängige Verwendung der Applikationen. Streamlit ist auch lokal ohne Internetverbindung lauffähig.

(ID:46957522)

Über den Autor