JupyterLite, Pyolite, Pyodide, Python

En este tutorial os mostraré como desplegar JupyterLite para tener vuestra propia versión liviana de JupyterLab ejecutándose en una página gratuita (gratis - free 🙂 de Github.

¿Qué es JupyterLite y para qué sirve?

JupyterLite es una distribución de JupyterLab que se ejecuta completamente en el navegador web. Se puede instalar localmente en GNU/Linux y otros sistemas operativos como Windows o Mac, o se puede instalar en una página de github https://github.com disponible en Internet.

Con esta aplicación web podremos utilizar cuadernos de Jupyter https://jupyter.org/ en Internet creando y compartiendo código, datos y visualizaciones interactivas en más de 40 lenguajes de programación (Python, R, Javascript, Scala...).

Tiene soporte para big data (Apache Spark), Machine Learning (TensorFlow) y AI.

Pyolyte y Pyodide

JupyterLite incluye Pyolite, un kernel de Python que utiliza el intérprete de Pyodide (CPython 3.8) compilado con WebAssembly, lo que permite ejecutar Python en el navegador.

Cuenta además con varios paquetes populares de Python y permite instalar otros desde el Python Package Index (PyPI) https://pypi.org/.

Pyodide https://pyodide.org facilita también una función que expone los paquetes de Python a JavaScript y a la interfaz de usuario del navegador incluyendo el DOM (Document Object Model) https://developer.mozilla.org/es/docs/Web/API/Document_Object_Model/Introduction.

Teniendo ipython disponible se pueden ejecutar en JupyterLite visualizaciones interactivas utilizando bibliotecas externas tipo plotly https://plotly.com/ y altair https://altair-viz.github.io/, o instalar y utilizar Jupyter widgets junto con las extensiones de JupyterLab.

Fuentes:

Proyecto:

Instalar Jupyterlite en Github pages

Para instalar Jupyterlite en Github vamos a utilizar la plantilla que se encuentra en https://github.com/jupyterlite/demo.

  • Clicamos en el botón Use this template para abrir la vantana que nos permitirá crear nuestro repositorio con esta aplicación.
  • Allí le asignamos un nombre a nuestro repositorio y clicamos en Create repository from template
  • Una vez creado iremos a la pestaña Setting -> Actions -> General de nuestro repositorio y en Workflow permissions verificamos que esté seleccionado Read and write permissions.
  • En Settings -> Pages habilitamos la opción en Source: Github actions.

En la pestaña Actions ya deberíamos tener el despliegue ejecutándose. Si ha dado algún error clicamos en el nombre del despliegue (Initial commit) y allí clicamos en el botón Re-run all jobs.

Una vez finalizado el despliegue podemos ir a nuestro Jupyterlite, en mi caso https://fortinux.github.io/jupyterlite/

Fortinux Jupyterlite

Instalar Jupyterlite en Ubuntu / Debian y derivadas

Los pasos para instalar Jupyterlite en Ubuntu 22.04 que he realizado sirven también para las distribuciones derivadas de Ubuntu y Debian, tal vez haciendo algunos pequeños cambios.

Es necesario tener en la maquina local instalado Python y pip para poder ejecutar Jupyterlite.

Abrimos la terminal y escribimos las órdenes que no comienzan con la almohadilla (son los comentarios del código):

# Creamos un ambiente virtual para aislar 
# el entorno de la aplicación en python 
python -m venv jupyterlite

# Cambiamos al directorio apenas creado
cd jupyterlite

# Habilitamos el ambiente virtual para aislarlo
source bin/activate

# Instalamos jupyterlite
# Podemos utilizar python3 si no tenemos el alias a python 
python -m pip install --pre jupyterlite
# Instalamos una biblioteca necesaria
pip install libarchive-c

# Inicializamos la aplicación 
jupyter lite init
jupyter lite serve  --port 9999

Con estas instrucciones ya podemos abrir el navegador en la dirección http://127.0.0.1:9999 donde se desplegará la aplicación apenas instalada.

Imagen de portada: Foto de Pixabay

Si buscas un formador para realizar este curso u otra actividad formativa (webinar, workshops, bootcamps, etc.) en tu organización, me puedes ubicar a través de la página de contacto. Muchas gracias.

Si te ha gustado el artículo puedes ayudarme haciendo una donación con criptomonedas. Gracias!!!