Einführung
Mit Shinylive für Python können Sie interaktive Shiny-Anwendungen, die in Python geschrieben wurden, direkt in Ihrem Webbrowser ausführen - ohne einen dedizierten Server zu benötigen. In diesem Lernprogramm erstellen Sie eine einfache Shiny for Python-Anwendung, die ein interaktives Histogramm anzeigt. Anschließend exportieren Sie die Anwendung als Shinylive-Anwendung und verwandeln Ihren dynamischen Code in eine Reihe statischer Dateien, die überall bereitgestellt werden können.
1. Erstellen Ihrer Shiny App
Wir erstellen eine einfache Shiny für Python Anwendung mit dem neuen shiny
Paket für Python. Dieses Beispiel verwendet einen Schieberegler, um die Anzahl der Bins in einem Histogramm mit Zufallsdaten zu steuern.
Code-Quelle
```{python}
from shiny import App, ui, render
import numpy as np
import matplotlib.pyplot as plt
# Definieren Sie die Benutzeroberfläche
app_ui = ui.page_fluid(
ui.input_slider("bins", "Number of bins:", 5, 30, 10, step=1),
ui.output_plot("histPlot")
)
# Definieren Sie die Serverlogik
def server(input, output, session):
@output
@render.plot
def histPlot():
# Zufallsdaten generieren
x = np.random.normal(0, 1, 1000)
# Erstellen Sie Bin-Kanten basierend auf dem Schiebereglerwert
bins = np.linspace(x.min(), x.max(), input.bins() + 1)
plt.figure(figsize=(8, 4))
plt.hist(x, bins=bins, color="skyblue", edgecolor="white")
plt.title("Interactive Histogram of Random Data")
plt.xlabel("Value")
plt.ylabel("Frequency")
plt.show()
# Erstellen der Shiny-Applikation
app = App(app_ui, server)
```
Führen Sie den Codeblock aus, um Ihre interaktive Shiny for Python-Anwendung lokal zu testen. Sie sollten einen Schieberegler und ein Histogramm sehen, das auf der Grundlage des Schiebereglerwerts aktualisiert wird.
Ergebnisse
#| '!! shinylive warning !!': |
#| shinylive does not work in self-contained HTML documents.
#| Please set `embed-resources: false` in your metadata.
#| standalone: true
#| viewerHeight: 650
from shiny import App, ui, render
import numpy as np
import matplotlib.pyplot as plt
# Definieren Sie die Benutzeroberfläche
app_ui = ui.page_fluid(
ui.input_slider("bins", "Number of bins:", 5, 30, 10, step=1),
ui.output_plot("histPlot")
)
# Definieren Sie die Serverlogik
def server(input, output, session):
@output
@render.plot
def histPlot():
# Zufallsdaten generieren
x = np.random.normal(0, 1, 1000)
# Erstellen Sie Bin-Kanten basierend auf dem Schiebereglerwert
bins = np.linspace(x.min(), x.max(), input.bins() + 1)
plt.figure(figsize=(8, 4))
plt.hist(x, bins=bins, color="skyblue", edgecolor="white")
plt.title("Interactive Histogram of Random Data")
plt.xlabel("Value")
plt.ylabel("Frequency")
plt.show()
# Erstellen der Shiny-Applikation
app = App(app_ui, server)
2. Exportieren Ihrer Anwendung mit Shinylive
Sobald deine Shiny-Anwendung lokal funktioniert, kannst du sie als Shinylive-Anwendung exportieren. Dadurch wird Ihr Python-Code in eine Reihe von statischen Dateien (HTML, JavaScript, CSS und WASM) umgewandelt, die vollständig im Browser ausgeführt werden.
Schritte zum Exportieren:
Organisieren Sie Ihre App-Dateien:
Speichern Sie den Code Ihrer Anwendung (z. B. in einer Datei namensapp.py
) in einem eigenen Ordner (z. B.myapp
).Exportieren der App:
Verwenden Sie das Python-Paket shinylive über die Befehlszeile, um Ihre App zu exportieren:shinylive export myapp site
Dieser Befehl erstellt einen neuen Ordner mit dem Namen
site/
, der alle statischen Dateien enthält, die zum Ausführen der Anwendung benötigt werden.Lokale Vorschau der exportierten Anwendung:
Starten Sie einen lokalen statischen Server (mit einem Tool wiehttp.server
in Python oder einem beliebigen statischen Dateiserver), um eine Vorschau Ihrer exportierten Anwendung anzuzeigen. Beispiel:python3 -m http.server --directory site --bind localhost 8008
Öffnen Sie Ihren Browser mit der angegebenen URL, um Ihre serverlose Anwendung in Aktion zu sehen.
3. Bereitstellen auf statischen Hosting-Diensten
Nachdem Sie überprüft haben, dass Ihre exportierte Anwendung lokal funktioniert, stellen Sie den Inhalt des Ordners site/
bei einem statischen Hosting-Dienst bereit.
Hier sind die allgemeinen Schritte zum Bereitstellen deiner Shinylive-Anwendung auf GitHub Pages:
Ein Repository erstellen:
Initialisieren Sie ein GitHub-Repository und fügen Sie den Ordnersite/
hinzu.GitHub-Seiten konfigurieren:
Aktivieren Sie in Ihren Repository-Einstellungen GitHub Pages und wählen Sie den Zweig/Ordner, der Ihre exportierte Anwendung enthält (z. B. das Stammverzeichnis des Repositorys oder einendocs/
-Ordner).Push und Veröffentlichen:
Commit und Push Ihrer Änderungen. Deine App sollte über die in den Repository-Einstellungen angegebene GitHub Pages URL zugänglich sein.Zugriff auf Ihre App:
Sobald GitHub Pages aktiviert ist, ist Ihre Anwendung über eine URL wiezugänglichhttps://yourusername.github.io/your-repo/
.
Andere statische Hosting-Optionen wie Netlify
folgen ähnlichen Schritten: Laden Sie einfach den Inhalt des Ordners site/
hoch und konfigurieren Sie die Bereitstellungseinstellungen.
4. Tipps und Best Practices
Asset-Verwaltung:
Überprüfen Sie die Asset-Versionen mit den entsprechenden shinylive-Befehlen. Aktualisieren Sie bei Bedarf die Assets, um die Kompatibilität sicherzustellen.Organisieren mehrerer Apps:
Wenn Sie mehrere Anwendungen exportieren, verwenden Sie Unterverzeichnisse, um jede Anwendung getrennt zu halten und die Konsistenz der gemeinsamen Assets zu wahren.Lokales Testen:
Prüfen Sie Ihre exportierte Anwendung immer lokal, bevor Sie sie auf einem statischen Hosting-Dienst wie GitHub Pages oder Netlify bereitstellen.Code-Lesbarkeit:
Schreiben Sie modularen, gut dokumentierten Code, um zukünftige Anpassungen zu erleichtern.
Weiterführende Literatur
- Einführung in Shinylive für Python
Verschaffen Sie sich einen Überblick über Shinylive für Python, seine Komponenten und seine Vorteile. - Installieren und Einrichten von Shinylive für Python
Lernen Sie, wie Sie das shinylive Python-Paket installieren und das Asset-Management konfigurieren. - Einbetten von Shinylive Python-Anwendungen in Quarto-Dokumente
Entdecken Sie, wie Sie Shinylive-Anwendungen direkt in Ihre Quarto-Dokumente einbetten können. - Erweiterte Anpassung und Fehlerbehebung für Shinylive (Python)
Sie lernen fortgeschrittene Techniken zur Anpassung und Fehlerbehebung Ihrer Shinylive-Anwendungen kennen.
Schlussfolgerung
Du hast nun eine grundlegende interaktive Shiny for Python-Anwendung erstellt und gelernt, wie man sie als Shinylive-App exportiert. Mit diesem serverlosen Ansatz können Sie Ihre interaktiven Python-Anwendungen als statische Websites bereitstellen, die vollständig im Browser ausgeführt werden. Experimentieren Sie mit weiteren Anpassungen und nutzen Sie die zusätzlichen Ressourcen, um Ihr Verständnis von Shinylive für Python zu vertiefen.
Referenzen
Weitere Artikel erkunden
Hier finden Sie weitere Artikel aus derselben Kategorie, die Ihnen helfen, tiefer in das Thema einzutauchen.
Wiederverwendung
Zitat
@online{kassambara2025,
author = {Kassambara, Alboukadel},
title = {Erstellen einer grundlegenden Shinylive-Python-Anwendung},
date = {2025-03-20},
url = {https://www.datanovia.com/de/learn/interactive/python/shinylive/basic-app.html},
langid = {de}
}