Introducción
Shinylive para Python te permite ejecutar aplicaciones Shiny interactivas escritas en Python directamente en tu navegador web, sin necesidad de un servidor dedicado. En este tutorial, crearás una sencilla aplicación Shiny para Python que muestra un histograma interactivo. A continuación, exportarás la aplicación como una aplicación Shinylive, convirtiendo tu código dinámico en un conjunto de archivos estáticos que se pueden implementar en cualquier lugar.
1. Crear la aplicación Shiny
Crearemos una aplicación Shiny básica para Python utilizando el nuevo paquete shiny
para Python. Este ejemplo utiliza un control deslizante para controlar el número de contenedores en un histograma de datos aleatorios.
Fuente del código
```{python}
from shiny import App, ui, render
import numpy as np
import matplotlib.pyplot as plt
# Definir la interfaz de usuario
app_ui = ui.page_fluid(
ui.input_slider("bins", "Number of bins:", 5, 30, 10, step=1),
ui.output_plot("histPlot")
)
# Definir la lógica del servidor
def server(input, output, session):
@output
@render.plot
def histPlot():
# Generar datos aleatorios
x = np.random.normal(0, 1, 1000)
# Crea bordes bin basados en el valor del control deslizante
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()
# Crear la aplicación Shiny
app = App(app_ui, server)
```
Ejecute el bloque de código para probar localmente su aplicación interactiva Shiny para Python. Debería ver un control deslizante y un histograma que se actualiza en función del valor del control deslizante.
Resultados
#| '!! 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
# Definir la interfaz de usuario
app_ui = ui.page_fluid(
ui.input_slider("bins", "Number of bins:", 5, 30, 10, step=1),
ui.output_plot("histPlot")
)
# Definir la lógica del servidor
def server(input, output, session):
@output
@render.plot
def histPlot():
# Generar datos aleatorios
x = np.random.normal(0, 1, 1000)
# Crea bordes bin basados en el valor del control deslizante
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()
# Crear la aplicación Shiny
app = App(app_ui, server)
2. Exportar tu aplicación con Shinylive
Una vez que su aplicación Shiny funcione localmente, puede exportarla como una aplicación Shinylive. Esto convierte tu código Python en un conjunto de archivos estáticos (HTML, JavaScript, CSS y WASM) que se ejecutan íntegramente en el navegador.
Pasos para exportar:
Organizar los archivos de la aplicación:
Guarde el código de su aplicación (por ejemplo, en un archivo llamadoapp.py
) dentro de una carpeta dedicada (por ejemplo,myapp
).Exportar la aplicación:
Utilice el paquete Python shinylive desde la línea de comandos para exportar su aplicación:shinylive export myapp site
Este comando crea una nueva carpeta llamada
site/
que contiene todos los archivos estáticos necesarios para ejecutar tu aplicación.Vista previa de la aplicación exportada localmente:
Inicie un servidor estático local (utilizando una herramienta comohttp.server
en Python o cualquier servidor de archivos estáticos) para obtener una vista previa de la aplicación exportada. Por ejemplo:python3 -m http.server --directory site --bind localhost 8008
Abre tu navegador en la URL proporcionada para ver tu aplicación sin servidor en acción.
3. Implementación en servicios de alojamiento estático
Después de verificar que tu aplicación exportada funciona localmente, implementa el contenido de la carpeta site/
en un servicio de alojamiento estático.
Estos son los pasos generales para implementar su aplicación Shinylive en GitHub Pages:
Crear un repositorio:
Inicializa un repositorio GitHub y añade la carpetasite/
.Configurar GitHub Pages:
En la configuración de tu repositorio, habilita GitHub Pages y selecciona la rama/carpeta que contiene tu aplicación exportada (por ejemplo, la raíz del repositorio o una carpetadocs/
).Enviar y publicar:
Confirmar y enviar los cambios. Deberías poder acceder a tu aplicación a través de la URL de GitHub Pages proporcionada en la configuración del repositorio.Acceder a la aplicación:
Una vez habilitado GitHub Pages, podrás acceder a tu aplicación a través de una URL comohttps://yourusername.github.io/your-repo/
.
Otras opciones de alojamiento estático, como Netlify
, siguen pasos similares: simplemente suba el contenido de la carpeta site/
y configure los ajustes de implementación.
4. Consejos y mejores prácticas
Gestión de recursos:
Comprueba las versiones de los activos utilizando los comandos shinylive adecuados. Si es necesario, actualiza los activos para garantizar la compatibilidad.Organizar varias aplicaciones:
Si exportas varias aplicaciones, utiliza subdirectorios para mantener cada aplicación separada y conservar la coherencia de los recursos compartidos.Pruebas locales:
Previsualiza siempre tu aplicación exportada localmente antes de implementarla en un servicio de alojamiento estático como GitHub Pages o Netlify.Legibilidad del código:
Escriba código modular y bien documentado para facilitar futuras personalizaciones.
Lecturas adicionales
- Introducción a Shinylive para Python
Obtenga una visión general de Shinylive para Python, sus componentes y sus ventajas. - Instalación y configuración de Shinylive para Python
Aprenda a instalar el paquete Python shinylive y a configurar la gestión de activos. - Incrustar aplicaciones Python Shinylive en documentos Quarto
Descubra cómo incrustar aplicaciones Shinylive directamente en sus documentos Quarto. - Personalización avanzada y resolución de problemas para Shinylive (Python)
Explora técnicas avanzadas para personalizar y solucionar problemas de tus aplicaciones Shinylive.
Conclusión
Ahora ha creado una aplicación Shiny interactiva básica para Python y ha aprendido a exportarla como una aplicación Shinylive. Este enfoque sin servidor te permite implementar tus aplicaciones Python interactivas como sitios web estáticos que se ejecutan íntegramente en el navegador. Experimente con más personalizaciones y explore los recursos adicionales para profundizar en su comprensión de Shinylive para Python.
Referencias
Explorar más artículos
Aquí hay más artículos de la misma categoría para ayudarte a profundizar en el tema.
Reutilización
Cómo citar
@online{kassambara2025,
author = {Kassambara, Alboukadel},
title = {Creación de una aplicación Python básica Shinylive},
date = {2025-03-20},
url = {https://www.datanovia.com/es/learn/interactive/python/shinylive/basic-app.html},
langid = {es}
}