Créer une application Python Shinylive de base

Construire et exporter votre première application Shiny sans serveur avec Python

Ce tutoriel montre comment construire une simple application Shiny pour Python et l’exporter en tant qu’application Shinylive. Apprenez à convertir votre utilisation Python interactive en une application web statique, sans serveur, en utilisant le package Python shinylive.

Outils
Auteur·rice
Affiliation
Date de publication

20 mars 2025

Mots clés

les bases de l’application Shinylive Python, Shiny Python sans serveur, exporter l’application Shiny Python

Introduction

Shinylive pour Python vous permet d’exécuter des applications Shiny interactives écrites en Python directement dans votre navigateur Web, sans avoir besoin d’un serveur dédié. Dans ce tutoriel, vous allez construire une simple application Shiny pour Python qui affiche un histogramme interactif. Ensuite, vous exporterez l’application en tant qu’application Shinylive, transformant votre code dynamique en un ensemble de fichiers statiques qui peuvent être déployés n’importe où.



1. Construire votre application Shiny

Nous allons créer une application Shiny pour Python de base en utilisant le nouveau package shiny pour Python. Cet exemple utilise un curseur pour contrôler le nombre de bacs dans un histogramme de données aléatoires.

Code Source

```{python}
from shiny import App, ui, render
import numpy as np
import matplotlib.pyplot as plt

# Définir l'interface utilisateur
app_ui = ui.page_fluid(
    ui.input_slider("bins", "Number of bins:", 5, 30, 10, step=1),
    ui.output_plot("histPlot")
)

# Définir la logique du serveur
def server(input, output, session):
    @output
    @render.plot
    def histPlot():
        # Générer des données aléatoires
        x = np.random.normal(0, 1, 1000)
        # Créer des bords de bacs en fonction de la valeur du curseur
        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()

# Créer l'application Shiny
app = App(app_ui, server)
```
Note

Exécutez le bloc de code pour tester localement votre application interactive Shiny pour Python. Vous devriez voir un curseur et un histogramme qui se met à jour en fonction de la valeur du curseur.

Résultats

#| '!! 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

# Définir l'interface utilisateur
app_ui = ui.page_fluid(
    ui.input_slider("bins", "Number of bins:", 5, 30, 10, step=1),
    ui.output_plot("histPlot")
)

# Définir la logique du serveur
def server(input, output, session):
    @output
    @render.plot
    def histPlot():
        # Générer des données aléatoires
        x = np.random.normal(0, 1, 1000)
        # Créer des bords de bacs en fonction de la valeur du curseur
        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()

# Créer l'application Shiny
app = App(app_ui, server)

2. Exporter votre application avec Shinylive

Une fois que votre application Shiny fonctionne localement, vous pouvez l’exporter en tant qu’application Shinylive. Cela permet de convertir votre code Python en un ensemble de fichiers statiques (HTML, JavaScript, CSS et WASM) qui s’exécutent entièrement dans le navigateur.

ÉTAPE d’exportation:

  1. Organiser les fichiers de votre application:
    Sauvegardez le code de votre application (par exemple, dans un fichier nommé app.py) dans un dossier dédié (par exemple, myapp).

  2. Exporter l’application:
    Utilisez le package Python shinylive à partir de la ligne de commande pour exporter votre application:

    shinylive export myapp site

    Cette commande crée un nouveau dossier nommé site/ qui contient tous les fichiers statiques nécessaires à l’exécution de votre application.

  3. Prévisualiser localement l’application exportée:
    Lancez un serveur statique local (en utilisant un outil comme http.server en Python ou n’importe quel serveur de fichiers statiques) pour prévisualiser votre application exportée. Par exemple:

      python3 -m http.server --directory site --bind localhost 8008

    Ouvrez votre navigateur à l’URL fournie pour voir votre application sans serveur en action.

3. Déploiement vers des services d’hébergement statiques

Après avoir vérifié que votre application exportée fonctionne localement, déployez le contenu du dossier site/ sur un service d’hébergement statique.

Voici les étapes générales pour déployer votre application Shinylive sur les pages GitHub:

  1. Créer un référentiel:
    Initialiser un dépôt GitHub et y ajouter le dossier site/.

  2. Configurer les pages GitHub:
    Dans les paramètres de votre dépôt, activez GitHub Pages et sélectionnez la branche/le dossier contenant votre application exportée (par exemple, la racine du dépôt ou un dossier docs/).

  3. Pousser et publier:
    Commencer et pousser vos changements. Votre application doit être accessible via l’URL GitHub Pages fournie dans les paramètres du dépôt.

  4. Accéder à votre application:
    Une fois que GitHub Pages est activé, votre application sera accessible via une URL comme https://yourusername.github.io/your-repo/.

Note

D’autres options d’hébergement statique comme Netlify suivent des étapes similaires : il suffit de télécharger le contenu du dossier site/ et de configurer les paramètres de déploiement.

4. Conseils et bonnes pratiques

  • Gestion des actifs:
    Vérifier les versions des ressources en utilisant les commandes shinylive appropriées. Si nécessaire, mettez à jour les actifs pour assurer la compatibilité.

  • Organiser plusieurs applications:
    Si vous exportez plusieurs applications, utilisez des sous-répertoires pour séparer chaque application et maintenir la cohérence des ressources partagées.

  • Test local:
    Prévisualisez toujours votre application exportée localement avant de la déployer sur un service d’hébergement statique comme GitHub Pages ou Netlify.

  • Lisibilité du code:
    Écrire un code modulaire et bien documenté pour faciliter les personnalisations futures.

Plus d’informations

Conclusion

Vous avez maintenant construit une application interactive Shiny pour Python de base et appris à l’exporter en tant qu’application Shinylive. Cette approche sans serveur vous permet de déployer vos applications interactives Python en tant que sites web statiques qui s’exécutent entièrement dans le navigateur. Expérimentez d’autres personnalisations et explorez les ressources supplémentaires pour approfondir votre compréhension de Shinylive pour Python.

Références

Explorer d’autres articles

Note

Voici d’autres articles de la même catégorie pour vous aider à approfondir le sujet.

placeholder

placeholder
Aucun article correspondant
Retour au sommet

Réutilisation

Citation

BibTeX
@online{kassambara2025,
  author = {Kassambara, Alboukadel},
  title = {Créer une application Python Shinylive de base},
  date = {2025-03-20},
  url = {https://www.datanovia.com/fr/learn/interactive/python/shinylive/basic-app.html},
  langid = {fr}
}
Veuillez citer ce travail comme suit :
Kassambara, Alboukadel. 2025. “Créer une application Python Shinylive de base.” March 20, 2025. https://www.datanovia.com/fr/learn/interactive/python/shinylive/basic-app.html.