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)
```
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:
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
).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.Prévisualiser localement l’application exportée:
Lancez un serveur statique local (en utilisant un outil commehttp.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:
Créer un référentiel:
Initialiser un dépôt GitHub et y ajouter le dossiersite/
.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 dossierdocs/
).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.Accéder à votre application:
Une fois que GitHub Pages est activé, votre application sera accessible via une URL commehttps://yourusername.github.io/your-repo/
.
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
- Introduction à Shinylive pour Python
Obtenez une vue d’ensemble de Shinylive pour Python, de ses composants et de ses avantages. - Installer et configurer Shinylive pour Python
Apprenez à installer le package Python shinylive et à configurer la gestion des ressources. - Embedding Shinylive Python Apps in Quarto Documents
Découvrez comment intégrer des applications Shinylive directement dans vos documents Quarto. - Personnalisation avancée et dépannage pour Shinylive (Python)
Explorer des techniques avancées pour personnaliser et dépanner vos applications Shinylive.
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
Voici d’autres articles de la même catégorie pour vous aider à approfondir le sujet.
Réutilisation
Citation
@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}
}