Erstellen einer grundlegenden Shinylive-Python-Anwendung

Bauen und exportieren Sie Ihre erste serverlose Shiny App mit Python

Dieses Tutorial zeigt, wie man eine einfache Shiny for Python-Anwendung erstellt und sie als Shinylive-App exportiert. Lernen Sie, wie Sie Ihre interaktive Python-Anwendung mit dem Python-Paket shinylive in eine statische, serverlose Webanwendung umwandeln.

Tools
Autor:in
Zugehörigkeit
Veröffentlichungsdatum

20. März 2025

Schlüsselwörter

grundlegende Shinylive Python-Anwendung, serverloses Shiny Python, Shiny-Anwendung Python exportieren

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)
```
Hinweis

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:

  1. Organisieren Sie Ihre App-Dateien:
    Speichern Sie den Code Ihrer Anwendung (z. B. in einer Datei namens app.py) in einem eigenen Ordner (z. B. myapp).

  2. 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.

  3. Lokale Vorschau der exportierten Anwendung:
    Starten Sie einen lokalen statischen Server (mit einem Tool wie http.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:

  1. Ein Repository erstellen:
    Initialisieren Sie ein GitHub-Repository und fügen Sie den Ordner site/ hinzu.

  2. 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 einen docs/-Ordner).

  3. 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.

  4. Zugriff auf Ihre App:
    Sobald GitHub Pages aktiviert ist, ist Ihre Anwendung über eine URL wie zugänglichhttps://yourusername.github.io/your-repo/.

Hinweis

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

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

Hinweis

Hier finden Sie weitere Artikel aus derselben Kategorie, die Ihnen helfen, tiefer in das Thema einzutauchen.

placeholder

placeholder
Keine Treffer
Zurück nach oben

Wiederverwendung

Zitat

Mit BibTeX zitieren:
@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}
}
Bitte zitieren Sie diese Arbeit als:
Kassambara, Alboukadel. 2025. “Erstellen einer grundlegenden Shinylive-Python-Anwendung.” March 20, 2025. https://www.datanovia.com/de/learn/interactive/python/shinylive/basic-app.html.