Skip to content
Anleitungen
Streamlit
So führen Sie Streamlit-Apps aus und optimieren sie ordnungsgemäß

So führen Sie Streamlit-Apps aus und optimieren sie ordnungsgemäß

Streamlit hat die Art und Weise, wie wir datengesteuerte Webanwendungen erstellen und bereitstellen, revolutioniert. Aber wie führt man Streamlit aus? Wie können Sie Ihre Streamlit-Apps für maximale Leistung optimieren? In dieser umfassenden Anleitung beantworten wir diese Fragen und mehr und geben Ihnen das Wissen und die Tools an die Hand, die Sie benötigen, um Streamlit zu beherrschen.

Verständnis von Streamlit

Was ist Streamlit? Streamlit ist eine Open-Source-Python-Bibliothek, mit der Entwickler interaktive, datengesteuerte Webanwendungen mit Leichtigkeit erstellen können. Es wurde entwickelt, um Datenwissenschaftler und Ingenieure bei ihrer Arbeit zu unterstützen, indem es Skripte in wenigen Zeilen Code in gemeinsam nutzbare Web-Apps verwandelt.

Die Integration von Streamlit mit Python, einer der beliebtesten Programmiersprachen der Welt, macht es zu einem leistungsstarken Werkzeug für Datenanalyse und Visualisierung. Aber Streamlit ist nicht nur eine Python-Bibliothek, sondern auch ein beeindruckendes Keyword-Tool. Das bedeutet, es kann Ihnen helfen, Keywords zu identifizieren und zu optimieren, die kurz davor stehen, auf der ersten Seite der Suchergebnisse von Suchmaschinen zu ranken, und somit die Sichtbarkeit und den Traffic Ihrer Website steigern.

Erste Schritte mit Streamlit

Das Ausführen von Streamlit ist unabhängig vom Betriebssystem einfach. Egal, ob Sie Windows, Linux oder macOS verwenden, Sie können Ihre Streamlit-App in kürzester Zeit zum Laufen bringen.

Streamlit auf Windows ausführen

Um Streamlit auf Windows auszuführen, müssen Sie es zunächst installieren. Öffnen Sie Ihre Eingabeaufforderung und geben Sie den folgenden Befehl ein:

pip install streamlit

Sobald Streamlit installiert ist, können Sie es ausführen, indem Sie den folgenden Befehl eingeben:

streamlit run your_script.py

Ersetzen Sie your_script.py durch den Namen Ihres Python-Skripts. Streamlit wird dann in Ihrem Standard-Webbrowser gestartet und Ihre App wird angezeigt, mit der Sie interagieren können.

Streamlit auf einem Server ausführen

Das Ausführen von Streamlit auf einem Server folgt einem ähnlichen Prozess. Nach der Installation von Streamlit auf Ihrem Server verwenden Sie den Befehl streamlit run, gefolgt vom Pfad zu Ihrem Python-Skript. Sie können dann über die IP-Adresse Ihres Servers und die Portnummer, auf der Streamlit läuft, auf Ihre Streamlit-App zugreifen.

Streamlit von VS Code ausführen

Visual Studio Code (VS Code) ist ein beliebter Code-Editor, der Streamlit unterstützt. Um Streamlit von VS Code auszuführen, öffnen Sie Ihr Python-Skript im Editor, öffnen Sie das Terminal und geben Sie den Befehl streamlit run, gefolgt vom Pfad zu Ihrem Skript, ein.

Erstellen und Ausführen Ihrer ersten Streamlit-App

Jetzt, da Sie wissen, wie man Streamlit ausführt, ist es Zeit, Ihre erste Streamlit-App zu erstellen. In diesem Abschnitt werden wir Sie Schritt für Schritt durch den Prozess führen, vom Schreiben Ihrer ersten Codezeilen bis zur Bereitstellung Ihrer App auf Render.

Schreiben Ihrer ersten Streamlit-App

Eine Streamlit-App ist einfach ein Python-Skript, das die Streamlit-Bibliothek verwendet. Hier ist ein einfaches Beispiel:

import streamlit as st
 
st.title('Hallo, Streamlit!')
st.write('Dies ist meine erste Streamlit-App.')

Wenn Sie dieses Skript mit Streamlit ausführen, wird eine Webseite mit dem Titel "Hallo, Streamlit!" und dem Text "Dies ist meine erste Streamlit-App." angezeigt.

Bereitstellen Ihrer Streamlit-App auf Render

Render ist eine Cloud-Plattform, mit der Sie Web-Apps bereitstellen können, einschließlich solcher, die mit Streamlit erstellt wurden. Um Ihre Streamlit-App auf Render bereitzustellen, müssen Sie ein Dockerfile erstellen, das Render mitteilt, wie Ihre App erstellt und ausgeführt werden soll. Hier ist ein Beispiel:

FROM python:3.7
WORKDIR /app
COPY . /app
RUN pip install -r requirements.txt
CMD streamlit run app.py

Dieses Dockerfile beginnt mit einem Python 3.7-Image, setzt das Arbeitsverzeichnis auf /app, kopiert die Dateien Ihrer App in das Image, installiert alle erforderlichen Python-Pakete und führt schließlich Ihre Streamlit-App aus.

Sobald Sie Ihr Dockerfile erstellt haben, können Sie Ihre App auf Render hochladen, und sie wird automatisch für Sie erstellt und bereitgestellt.

Optimieren Ihrer Streamlit-Anwendung

Streamlit-Apps wurden entwickelt, um schnell und effizient zu sein, aber wie bei jeder Software gibt es immer Verbesserungspotenzial. In diesem Abschnitt werden wir einige Techniken zur Optimierung Ihrer Streamlit-Apps untersuchen und uns auf die Verbesserung der Leistung und Reaktionsfähigkeit konzentrieren.

Verbesserung der App-Leistung

Streamlit bietet leistungsstarke Caching-Primitive, die die Leistung Ihrer App erheblich verbessern können. Diese Caching-Primitive ermöglichen es Ihrer App, performant zu bleiben, auch beim Laden von Daten aus dem Web, bei der Bearbeitung großer Datenmengen oder beim Ausführen aufwändiger Berechnungen.

Streamlit bietet zwei Hauptarten von Caching: @st.cache_data und @st.cache_resource. Der Dekorator @st.cache_data wird verwendet, um Funktionen zu cachieren, die Daten zurückgeben, wie z.B. Datensatztransformationen, Datenbankabfragen oder maschinelles Lernen. Auf der anderen Seite wird @st.cache_resource verwendet, um Funktionen zu cachieren, die globale Ressourcen zurückgeben, wie z.B. Datenbankverbindungen oder maschinelles Lernen.

Hier ist ein Beispiel, wie man diese Dekoratoren verwendet:

@st.cache_data
def long_function(param1, param2):
    # Führen Sie hier teure Berechnungen durch oder
    # holen Sie Daten aus dem Web
    return data
 
@st.cache_resource
def init_model():
    # Geben Sie hier eine globale Ressource zurück
    return pipeline(
        "sentiment-analysis",
        model="distilbert-base-uncased-finetuned-sst-2-english"
    )

Sie können auch alle in-memory- und on-disk-Datencaches mit st.cache_data.clear() und st.cache_resource.clear() löschen.

Optimierung der App-Darstellung

Die Leistung einer Streamlit-App kann auch von der Komplexität ihrer Benutzeroberfläche beeinflusst werden. Wenn Ihre App beim Ändern der Größe des Browserfensters oder beim Aus- und Einklappen der Seitenleiste nicht reagiert, könnte dies an der Darstellung komplexer UI-Elemente liegen. Ein Weg, um die Darstellung Ihrer Streamlit-App zu optimieren, besteht darin, die Benutzeroberfläche zu vereinfachen. Verwenden Sie beispielsweise anstelle einer großen Anzahl von Schiebereglern oder Auswahl-Schiebereglern andere Arten von Eingabe-Widgets, die weniger ressourcenintensiv sind.

Ein weiterer Ansatz zur Optimierung der Darstellung Ihrer Plots besteht darin, die Darstellung Ihrer Plots zu optimieren. Wenn Ihre App komplexe Plotly-Diagramme enthält, sollten Sie in Erwägung ziehen, beim Aufruf von st.plotly_chart die Option use_container_width=True zu verwenden. Diese Option stellt sicher, dass Ihre Diagramme in der optimalen Größe für den Container Ihrer App dargestellt werden und verbessert die Darstellungsleistung.

Effiziente Bereitstellung von Streamlit-Apps

Bei der Bereitstellung einer Streamlit-App sollten die Ressourcen, die von Ihrer App benötigt werden, und die Fähigkeiten Ihrer Bereitstellungsplattform berücksichtigt werden. Wenn Ihre App beispielsweise umfangreiche Berechnungen durchführt oder große Datensätze verarbeitet, müssen Sie möglicherweise eine Bereitstellungsplattform mit ausreichenden CPU- und Speicherressourcen wählen.

Ein häufiger Fehler bei der Bereitstellung von Streamlit-Apps besteht darin, die Speicheroptimierung nicht zu berücksichtigen. Wenn Ihre App eine große Menge an Speicher verwendet, kann sie beim Bereitstellen abbrechen oder nicht reagieren. Um dies zu vermeiden, sollten Sie Techniken wie Caching, effiziente Datenverarbeitung und Speicherprofiling verwenden, um den Speicherverbrauch Ihrer App zu reduzieren.

Zusammenfassend lässt sich sagen, dass die Optimierung einer Streamlit-App eine Kombination aus Verbesserung der Rechenleistung, Optimierung der Benutzeroberfläche und effizienter Bereitstellung der App umfasst. Durch Anwendung dieser Techniken können Sie sicherstellen, dass Ihre Streamlit-Apps schnell, reaktionsfähig und zuverlässig sind.

Fortgeschrittene Funktionen von Streamlit

Streamlit ist nicht nur ein Werkzeug zur Erstellung einfacher Web-Apps. Es ist eine leistungsstarke Plattform, die eine Vielzahl von fortschrittlichen Funktionen unterstützt und es Ihnen ermöglicht, komplexe, interaktive Anwendungen mühelos zu erstellen. Sobald Sie mit den Grundlagen vertraut sind, können Sie sich mit den fortgeschrittenen Funktionen von Streamlit vertraut machen. Dazu gehören:

  • Interaktive Widgets: Streamlit unterstützt eine Vielzahl von interaktiven Widgets, darunter Schieberegler, Kontrollkästchen, Optionsfelder und mehr. Mit diesen Widgets können Ihre Benutzer mit Ihrer App interagieren, ihr Verhalten steuern und Daten auf verschiedene Arten visualisieren.

  • Daten-Caching: Wie bereits erwähnt, können Streamlits Caching-Primitive die Leistung Ihrer App erheblich verbessern. Durch das Zwischenspeichern der Ergebnisse kostenintensiver Berechnungen können Sie Ihre App schneller und reaktionsschneller machen.

  • Sitzungsstatus: Die Sitzungsstatus-Funktion von Streamlit ermöglicht es Ihnen, einen Zustand über mehrere Wiederholungen hinweg beizubehalten und so komplexere Interaktionen zu ermöglichen. Sie können beispielsweise den Sitzungsstatus verwenden, um die Eingabe des Benutzers oder die aktuelle Seite in einer Mehrseiten-App zu speichern.

  • Komponenten: Streamlit-Komponenten ermöglichen es Ihnen, die Fähigkeiten von Streamlit durch Integration mit anderen JavaScript-Bibliotheken und Frameworks zu erweitern. Sie können Komponenten verwenden, um benutzerdefinierte Widgets zu erstellen, interaktive Visualisierungen einzubetten und vieles mehr.

Durch die Beherrschung dieser fortgeschrittenen Funktionen können Sie Ihre Streamlit-Apps auf die nächste Stufe bringen und komplexe, interaktive Anwendungen erstellen, die den Anforderungen Ihrer Benutzer gerecht werden.

Zusätzlich können Sie ein No-Code-Datenvisualisierungstool mit dieser großartigen Open-Source-Python-Bibliothek erstellen:

PyGWalker (opens in a new tab) ist eine Python-Bibliothek, die es Ihnen ermöglicht, eine Tableau-ähnliche Benutzeroberfläche nahtlos in Ihre eigene Streamlit-App einzubetten.

PyGWalker zur Datenvisualisierung in Streamlit (opens in a new tab)

Fazit

Streamlit ist ein leistungsstarkes Werkzeug zur Erstellung datengetriebener Webanwendungen. Mit seiner benutzerfreundlichen Oberfläche und umfangreichen Funktionen können Entwickler Python-Skripte schnell und einfach in interaktive Web-Apps umwandeln. Egal, ob Sie Streamlit auf Ihrem lokalen Rechner, einem Server oder in VS Code ausführen, der Einstieg ist unkompliziert. Mit den richtigen Optimierungstechniken können Sie sicherstellen, dass Ihre Streamlit-Apps schnell, reaktionsschnell und zuverlässig sind. Also worauf warten Sie? Entdecken Sie Streamlit noch heute und erfahren Sie, wie es Ihre Datenanalyse- und Visualisierungs-Workflows transformieren kann.

Häufig gestellte Fragen

  1. Was ist Streamlit?

    Streamlit ist eine Open-Source-Python-Bibliothek, mit der Entwickler interaktive, datengetriebene Webanwendungen einfach erstellen können. Es wurde entwickelt, um Datenwissenschaftlern und Ingenieuren bei ihrer Arbeit zu helfen und Skripte in nur wenigen Codezeilen in gemeinsam nutzbare Web-Apps umzuwandeln.

  2. Wie führe ich Streamlit auf meinem lokalen Rechner aus?

    Um Streamlit auf Ihrem lokalen Rechner auszuführen, müssen Sie es zunächst mit pip installieren. Sobald es installiert ist, können Sie Streamlit ausführen, indem Sie den Befehl streamlit run your_script.py in Ihrer Kommandozeile eingeben und your_script.py durch den Namen Ihres Python-Skripts ersetzen.

  3. Wie kann ich meine Streamlit-App optimieren?

    Sie können Ihre Streamlit-App optimieren, indem Sie Streamlits Caching-Primitive verwenden, die Benutzeroberfläche Ihrer App vereinfachen und Ihre App effizient bereitstellen. Diese Techniken können die Leistung Ihrer App verbessern und sie schneller und reaktionsschneller machen.