Saltar al contenido

¿Cuál es la forma más sencilla de crear una aplicación web a partir de un Jupyter Notebook interactivo?

Solución:

Creo que la forma más sencilla es utilizar voilà.

Después de la instalación solo tienes que ejecutar:

voila <path-to-notebook> <options>

Y tendrá un servidor que ejecutará su computadora portátil como una aplicación web, con todo el código de entrada omitido.

AppMode es “una extensión de Jupyter que convierte los portátiles en aplicaciones web”.

Del README:

El modo de aplicación consta de una extensión del lado del servidor y una computadora portátil para Jupyter. Juntas, estas dos extensiones proporcionan las siguientes características:

  • Se puede ver cualquier cuaderno en modo de aplicación haciendo clic en el botón Modo de aplicación en la barra de herramientas. Alternativamente, se puede cambiar la URL de baseurl / notebooks / foo.ipynb a baseurl / apps / foo.ipynb. Esto también permite enlaces directos al modo de aplicación.

  • Cuando se abre un cuaderno en modo aplicación, todas las celdas de código se ejecutan automáticamente. Para presentar una interfaz de usuario limpia, todas las celdas de código están ocultas y las celdas de rebajas son de solo lectura.

  • Un portátil se puede abrir varias veces en modo aplicación sin interferencias. Esto se logra creando copias temporales del bloc de notas para cada vista de modo de aplicación activa. Cada vista de modo de aplicación tiene su kernel ipython dedicado. Cuando se cierra una página de modo de aplicación, el kernel se apaga y la copia temporal se elimina.

  • Para permitir el paso de información entre cuadernos a través de parámetros de URL, la URL actual se inyecta en la variable jupyter_notebook_url.

Para ser completo, también existe https://www.streamlit.io/.

Sigo sin entender la diferencia exacta entre voila y streamlit. En este momento solo lucho con la posibilidad de volver a ejecutar todo con nuevos parámetros … tengo mala suerte con voila todavía.

Editar: veo eso streamlit requiere una pitón sin procesar, no .ipynb, este hecho significaría que esta respuesta es completamente incorrecta, buscaré un poco más en streamlit antes de más acciones / comentarios.

Edición 2: Voila se ve muy bien. Sin embargo, encontré pocas cosas que descubren la complejidad subyacente y, por lo tanto, los problemas que pueden surgir.

  • devoluciones de llamada. Los widgets funcionan muy bien en jupyter, pero como no es posible volver a ejecutar una celda, a veces se debe modificar la lógica para que funcione en Voila.
  • Java interactivo los objetos necesitan un tratamiento especial, p. ej. matplotlib tiene una solución barata, pero no había nada para, por ejemplo, jsroot
  • Enlaces. Es fácil crear (un archivo y) un enlace de descarga en jupyter, Voila también puede servir un archivo, pero necesita otro tratamiento adicional.

Después de todo, me hago una pregunta: ¿Es mejor aprender muchos trucos y modificaciones de jupyter o usar algún otro sistema? Voy a ver si streamlit puede darles alguna respuesta.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *