Cómo configurar un Jupyter Notebook con Python 3 en Debian 10

Introducción
Jupyter Notebook ofrece un shell de comandos para computación interactiva como una aplicación web, de modo que pueda compartir y comunicarse con código. La herramienta se puede utilizar con varios lenguajes, incluidos Python, Julia, R, Haskell y Ruby. Se suele utilizar para trabajar con datos, modelado estadístico y aprendizaje automático.
Este tutorial le mostrará cómo configurar Jupyter Notebook para que se ejecute desde un servidor Debian 10, y le enseñará a conectarse a él y a utilizarlo. Los Jupyter Notebooks (o simplemente “Notebooks”) son documentos producidos por la aplicación Jupyter Notebook que contienen tanto código informático como elementos de texto enriquecido (párrafos, ecuaciones, figuras, enlaces, etc.) que ayudan a presentar y compartir investigaciones reproducibles.
Al final de esta guía, podrá ejecutar código Python 3 usando Jupyter Notebook ejecutándose en un servidor Debian 10 remoto.
Prerrequisitos
Para completar esta guía, debe tener una instancia de servidor Debian 10 nueva con un firewall básico y un usuario no root con privilegios sudo configurados. Puede aprender a configurar esto consultando nuestra guía Configuración inicial del servidor con Debian 10.
Paso 1: Instalar los encabezados de Pip y Python
Para comenzar el proceso, descargaremos e instalaremos todos los elementos que necesitamos de los repositorios de Debian. Usaremos el administrador de paquetes de Python pip
para instalar componentes adicionales un poco más adelante.
Primero debemos actualizar el apt
índice de paquetes locales y luego descargar e instalar los paquetes:
- sudo apt update
A continuación, instale pip
los archivos de encabezado de Python, que son utilizados por algunas de las dependencias de Jupyter:
- sudo apt install python3-pip python3-dev
Debian 10 (“Buster”) viene preinstalado con Python 3.7.
Ahora podemos pasar a configurar un entorno virtual de Python en el que instalaremos Jupyter.
Paso 2: crear un entorno virtual de Python para Jupyter
Ahora que tenemos Python 3, sus archivos de encabezado y pip
estamos listos para usar, podemos crear un entorno virtual de Python para una administración más sencilla. Instalaremos Jupyter en este entorno virtual.
Para ello, primero necesitamos acceder al virtualenv
comando. Podemos instalarlo con pip
.
Actualice pip
e instale el paquete escribiendo:
- sudo -H pip3 install --upgrade pip
- sudo -H pip3 install virtualenv
Una vez virtualenv
instalado, podemos empezar a formar nuestro entorno. Creamos y nos movemos a un directorio donde podamos guardar los archivos de nuestro proyecto:
- mkdir ~/myprojectdir
- cd ~/myprojectdir
Dentro del directorio del proyecto, cree un entorno virtual de Python escribiendo:
- virtualenv myprojectenv
Esto creará un directorio llamado myprojectenv
dentro de su myprojectdir
directorio. En su interior, instalará una versión local de Python y una versión local de pip
. Podemos usar esto para instalar y configurar un entorno Python aislado para Jupyter.
Antes de instalar Jupyter, debemos activar el entorno virtual. Para ello, escriba lo siguiente:
- source myprojectenv/bin/activate
El mensaje debería cambiar para indicar que ahora estás trabajando en un entorno virtual de Python. Se verá así: .(myprojectenv)user@host:~/myprojectdir$
Ahora está listo para instalar Jupyter en este entorno virtual.
Paso 3: Instalar Jupyter
Con su entorno virtual activo, instale Jupyter con la instancia local de pip
:
Nota: Cuando el entorno virtual esté activado (cuando su mensaje (myprojectenv)
lo haya precedido), utilice pip
en lugar de pip3
, incluso si está usando Python 3. La copia de la herramienta del entorno virtual siempre se llama pip
, independientemente de la versión de Python.
- pip install jupyter
En este punto, has instalado correctamente todo el software necesario para ejecutar Jupyter. Ahora podemos iniciar el servidor Notebook.
Paso 4: Ejecutar Jupyter Notebook
¡Ya tienes todo lo que necesitas para ejecutar Jupyter Notebook! Para hacerlo, ejecuta el siguiente comando:
- jupyter notebook
Se imprimirá un registro de las actividades de Jupyter Notebook en la terminal. Cuando ejecuta Jupyter Notebook, este se ejecuta en un número de puerto específico. El primer Notebook que ejecute normalmente utilizará el puerto 8888
. Para comprobar el número de puerto específico en el que se ejecuta Jupyter Notebook, consulte la salida del comando utilizado para iniciarlo:
Output[I 21:23:21.198 NotebookApp] Writing notebook server cookie secret to /run/user/1001/jupyter/notebook_cookie_secret[I 21:23:21.361 NotebookApp] Serving notebooks from local directory: /home/sammy/myprojectdir[I 21:23:21.361 NotebookApp] The Jupyter Notebook is running at:[I 21:23:21.361 NotebookApp] http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72[I 21:23:21.361 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).[W 21:23:21.361 NotebookApp] No web browser found: could not locate runnable browser.[C 21:23:21.361 NotebookApp] Copy/paste this URL into your browser when you connect for the first time, to login with a token: http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72
Si está ejecutando Jupyter Notebook en una computadora Debian local (no en un Droplet), puede simplemente navegar a la URL que se muestra para conectarse a Jupyter Notebook. Si está ejecutando Jupyter Notebook en un Droplet, deberá conectarse al servidor mediante un túnel SSH como se describe en la siguiente sección.
En este punto, puede mantener abierta la conexión SSH y mantener Jupyter Notebook en ejecución o puede salir de la aplicación y volver a ejecutarla una vez que haya configurado la tunelización SSH. Mantengámoslo simple y detengamos el proceso de Jupyter Notebook. Lo ejecutaremos nuevamente una vez que la tunelización SSH funcione. Para detener el proceso de Jupyter Notebook, presione CTRL+C
, escriba Y
y presione ENTER
para confirmar. Se mostrará lo siguiente:
Output[C 21:28:28.512 NotebookApp] Shutdown confirmed[I 21:28:28.512 NotebookApp] Shutting down 0 kernels
Ahora configuraremos un túnel SSH para que podamos acceder al Notebook.
Paso 5: Conéctese al servidor mediante el túnel SSH
En esta sección aprenderemos a conectarnos a la interfaz web de Jupyter Notebook mediante la tunelización SSH. Dado que Jupyter Notebook se ejecutará en un puerto específico del servidor (como :8888
, :8889
etc.), la tunelización SSH le permite conectarse al puerto del servidor de forma segura.
Las dos siguientes subsecciones describen cómo crear un túnel SSH desde 1) un Mac o Linux y 2) un Windows. Consulta la subsección correspondiente a tu equipo local.
Túnel SSH con Mac o Linux
Si utiliza un Mac o Linux, los pasos para crear un túnel SSH son similares a los que se utilizan para iniciar sesión en el servidor remoto, excepto que hay parámetros adicionales en el ssh
comando. En esta subsección, se describirán los parámetros adicionales necesarios en el ssh
comando para crear un túnel correctamente.
La tunelización SSH se puede realizar ejecutando el siguiente comando SSH en una nueva ventana de terminal local:
- ssh -L 8888:localhost:8888 your_server_username@your_server_ip
El ssh
comando abre una conexión SSH, pero -L
especifica que el puerto indicado en el host local (cliente) se debe reenviar al host y puerto indicados en el lado remoto (servidor). Esto significa que todo lo que se esté ejecutando en el segundo número de puerto (por ejemplo, 8888
) en el servidor aparecerá en el primer número de puerto (por ejemplo, 8888
) en su computadora local.
Opcionalmente, cambie el puerto 8888
a uno de su elección para evitar utilizar un puerto que ya esté en uso por otro proceso.
server_username
es tu nombre de usuario (por ejemploSammy) en el servidor que usted creó y your_server_ip
es la dirección IP de su servidor.
Por ejemplo, para el nombre de usuario sammy
y la dirección del servidor 203.0.113.0
, el comando sería:
- ssh -L 8888:localhost:8888 sammy@203.0.113.0
Si no aparece ningún error después de ejecutar el ssh -L
comando, puede pasar a su entorno de programación y ejecutar Jupyter Notebook:
- jupyter notebook
Recibirá un resultado con una URL. Desde un navegador web en su máquina local, abra la interfaz web de Jupyter Notebook con la URL que comienza con http://localhost:8888
. Asegúrese de que se incluya el número de token o ingrese la cadena del número de token cuando se le solicite en http://localhost:8888
.
Túnel SSH con Windows y Putty
Si está usando Windows, puede crear un túnel SSH usando Putty.
Primero, ingrese la URL del servidor o la dirección IP como nombre de host como se muestra:
A continuación, haga clic en SSH en la parte inferior del panel izquierdo para expandir el menú y, a continuación, haga clic en Túneles . Ingrese el número de puerto local que se utilizará para acceder a Jupyter en su máquina local. Elija 8000
o mayor para evitar los puertos utilizados por otros servicios y configure el destino como donde es el número del puerto en el que se ejecuta Jupyter Notebook.localhost:8888
:8888
Ahora haga clic en el botón Agregar y los puertos deberían aparecer en la lista de puertos reenviados :
Por último, haga clic en el botón Abrir para conectarse al servidor a través de SSH y tunelear los puertos deseados. Navegue hasta (o cualquier puerto que haya elegido) en un navegador web para conectarse a Jupyter Notebook que se ejecuta en el servidor. Asegúrese de que el número de token esté incluido o ingrese la cadena del número de token cuando se le solicite en .http://localhost:8000
http://localhost:8000
Paso 6: uso de Jupyter Notebook
En esta sección se repasan los conceptos básicos del uso de Jupyter Notebook. Si no tiene Jupyter Notebook en ejecución actualmente, inícielo con el jupyter notebook
comando.
Ahora deberías estar conectado a él mediante un navegador web. Jupyter Notebook es una herramienta muy potente con muchas funciones. En esta sección, se describirán algunas de las funciones básicas para que puedas empezar a utilizar el Notebook. Jupyter Notebook mostrará todos los archivos y carpetas del directorio desde el que se ejecuta, por lo que cuando trabajes en un proyecto, asegúrate de iniciarlo desde el directorio del proyecto.
Para crear un nuevo archivo de Notebook, seleccione Nuevo Python 3 en el menú desplegable superior derecho:
Esto abrirá un cuaderno. Ahora podemos ejecutar código Python en la celda o cambiar la celda a Markdown. Por ejemplo, cambie la primera celda para que acepte Markdown haciendo clic en Celda Tipo de celda Markdown en la barra de navegación superior. Ahora podemos escribir notas usando Markdown e incluso incluir ecuaciones escritas en LaTeX colocándolas entre los $$
símbolos. Por ejemplo, escriba lo siguiente en la celda después de cambiarla a Markdown:
# First EquationLet us now implement the following equation:$$ y = x^2$$where $x = 2$
Para convertir el Markdown en texto enriquecido, presione CTRL+ENTER
y los resultados deberían ser los siguientes:
Puedes usar las celdas de Markdown para tomar notas y documentar tu código. Implementemos esa ecuación e imprimamos el resultado. Haz clic en la celda superior y luego presiona ALT+ENTER
para agregar una celda debajo de ella. Introduce el siguiente código en la nueva celda.
x = 2y = x**2print(y)
Para ejecutar el código, presione CTRL+ENTER
. Recibirá los siguientes resultados:
¡Ahora tienes la posibilidad de importar módulos y usar el Notebook como lo harías con cualquier otro entorno de desarrollo de Python!
Conclusión
En este punto, deberías poder escribir código Python reproducible y notas en Markdown usando Jupyter Notebook. Para obtener un recorrido rápido por Jupyter Notebook desde la interfaz, selecciona Ayuda Recorrido por la interfaz de usuario en el menú de navegación superior para obtener más información.
Desde aquí, puedes comenzar un proyecto de análisis y visualización de datos leyendo Análisis y visualización de datos con pandas y Jupyter Notebook en Python 3.
Deja una respuesta