Jupyter es un popular cuaderno interactivo basado en navegador para programación, matemáticas y ciencia de datos. Es una aplicación web que nos permite crear y compartir documentos que contienen código en vivo, ecuaciones, visualizaciones y texto narrativo. Admite varios idiomas a través de complementos ("núcleos"), como Python, Ruby, Haskell, R, Scala y Julia. En este tutorial, le mostraremos cómo instalar Jupyter en Ubuntu 18.04 en uno de nuestros servicios de alojamiento VPS de Linux.
Algunas de las principales características de la aplicación web Jupyter Notebook son:
- Edición de código en el navegador con resaltado automático de sintaxis, sangría y finalización/introspección de tabulación.
- Ejecute código fácilmente desde su navegador web favorito
- Mostrar el resultado del cálculo utilizando representaciones de medios enriquecidos, como HTML, LaTeX, PNG, SVG, etc. Por ejemplo, las cifras de calidad de publicación representadas por la biblioteca matplotlib se pueden incluir en línea.
- La edición en el navegador de texto enriquecido mediante el lenguaje de marcas Markdown, que puede proporcionar comentarios para el código, no se limita al texto sin formato.
- La capacidad de incluir fácilmente la notación matemática dentro de las celdas de descuento utilizando LaTeX y renderizado de forma nativa por MathJax.
Requisitos previos:
- Ubuntu 18.04 con 2 GB de memoria o superior
- Python 3
- Nginx
- Acceso SSH con privilegios de raíz
1. Inicie sesión a través de SSH y actualice el sistema
Inicie sesión en su Ubuntu 18.04 VPS con SSH como usuario root:
# ssh root@IP_Address -p Port_number
Puede verificar si tiene instalada la versión adecuada de Ubuntu en su servidor con el siguiente comando:
lsb_release -a
Deberías obtener este resultado:
Distributor ID: Ubuntu Description: Ubuntu 18.04.1 LTS Release: 18.04 Codename: bionic
Luego, ejecute el siguiente comando para asegurarse de que todos los paquetes instalados en el servidor estén actualizados a la última versión disponible:
# apt update && apt upgrade
Vamos a crear un Sudoer para instalar Jupyter Notebook, siga las instrucciones y use una contraseña segura para el usuario.
# adduser jupyter
Ahora, agreguemos el nuevo usuario al grupo sudo:
# usermod -aG sudo jupyter
Una vez agregado, podemos iniciar sesión como jupyter y hacer la instalación:
su - jupyter
$ sudo apt install python3-pip python3-dev
2. Crear un entorno virtual de Python para Jupyter
$ virtualenv jnotebook
$ source jnotebook/bin/activate
Ahora, se encuentra en el entorno virtual de Python y está listo para instalar Jupyter Notebook.
3. Instalar cuaderno Jupyter
(jnotebook) jupyter@ubuntu-jan2019:~$ pip instal jupyter
NOTA: Preste atención al comando, incluso si estamos usando Python 3, cuando esté en el entorno virtual de Python, use el comando 'pip' en lugar de 'pip3'. Esto se debe a que la herramienta de entorno virtual siempre se llama pip, independientemente de la versión de Python que usemos.
4. Ejecute Jupyter Notebook
¡Se hace! Ahora puede ejecutar Jupyter Notebook. Para iniciarlo (ejecutarlo), ingrese el siguiente comando:
(jnotebook) jupyter@ubuntu-jan2019:~$ jupyter notebook
De forma predeterminada, Jupyter Notebook está configurado para ejecutarse en localhost y el puerto 8888. Para iniciarlo en una dirección IP específica, puede ejecutar este comando:
(jnotebook) jupyter@ubuntu-jan2019:~$ jupyter notebook --ip='1.2.3.4'
Cambie 1.2.3.4 a la dirección IP de su servidor.
Usando su navegador web favorito, puede navegar al enlace proporcionado cuando ejecuta Jupyter.
En este punto, está accediendo a Jupyter Notebook usando el token. A partir de la versión 5.3 de Notebook, podemos crear una contraseña a través de la interfaz web o la línea de comandos.
Antes de crear una contraseña, primero debemos generar el archivo de configuración, podemos ejecutar este comando:
(jnotebook) jupyter@ubuntu-jan2019:~$ jupyter notebook --generage-config
El comando anterior creará un archivo jupyter_notebook_config.py. En este tutorial, el archivo se guarda como /home/jupyter/.jupyter/jupyter_notebook_config.py
La capacidad de crear una contraseña durante el primer inicio de sesión puede estar deshabilitada, debe habilitarla editando /home/jupyter/ .jupyter/jupyter_notebook_config.py. Vaya a la línea 68 y edite "NotebookApp.allow_password_change". Cambie el valor de Falso a Verdadero y no olvide descomentar la línea. Luego, guarde el archivo.
Ahora, podemos ejecutar el siguiente comando para crear una contraseña y luego ejecutar Jupyter Notebook nuevamente.
(jnotebook) jupyter@ubuntu-jan2019:~$ jupyter notebook password
(jnotebook) jupyter@ubuntu-jan2019:~$ jupyter notebook --ip='1.2.3.4'
5. Configurar Jupyter Notebook para que se ejecute como un servicio
Si ejecutamos el comando ‘Jupyter notebook’ en SSH, la aplicación se cerrará cuando estemos desconectados de la sesión SSH.
Para evitar esto, podemos ejecutar el comando en una sesión de pantalla o crear un archivo systemd. En este tutorial, crearemos un archivo systemd para que podamos ejecutar el cuaderno Jupyter como un servicio.
$ sudo nano /etc/systemd/system/jupyter.service
Luego pegue las siguientes líneas en él, luego guarde el archivo:
[Unit] Description=Jupyter Notebook [Service] Type=simple PIDFile=/run/jupyter.pid ExecStart=/home/jupyter/jupyter/bin/jupyter-notebook --config=/home/jupyter/.jupyter/jupyter_notebook_config.py User=jupyter Group=jupyter WorkingDirectory=/home/jupyter/jnotebook Restart=always RestartSec=10 [Install] WantedBy=multi-user.target
Una vez guardado, debemos habilitar e iniciar el servicio.
$ sudo systemctl daemon-reload $ sudo systemctl enable jupyter $ sudo systemctl start jupyter
6. Instale el servidor web Nginx y configure el proxy inverso
Ahora, Jupyter Notebook solo escucha en localhost. Para poder acceder a él utilizando su dominio o subdominio, y sin escribir el número de puerto en su navegador web, debemos configurar Nginx como proxy inverso.
$ sudo nano /etc/nginx/sites-enabled/yourdomain.com.conf
Inserte las siguientes líneas en el archivo. Cambie "sudominio.com" a su nombre de dominio real que desea usar para acceder a Jupyter Notebook:
upstream jupyter { server 127.0.0.1:8888; } server { listen 80 default; server_name yourdomain.com; access_log /var/log/nginx/yourdomain.com.access.log; error_log /var/log/nginx/yourdomain.com.error.log; location / { proxy_pass http://localhost:8888; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; proxy_http_version 1.1; proxy_redirect off; proxy_buffering off; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 86400; } }
No olvide guardar el archivo de configuración recién creado.
Comprueba la configuración de Nginx y si todo está bien, reinícialo.
$ sudo nginx -t $ sudo systemctl restart nginx
Ahora, necesitamos editar el archivo de configuración de Jupyter para permitirnos acceder a él usando Nginx como proxy inverso.
$ sudo nano /home/jupyter/.jupyter/jupyter_notebook_config.py
Vaya a buscar "NotebookApp.allow_remote_access" y cambie el valor de Falso a Verdadero. No olvides descomentar la línea.
Luego, reinicie Jupyter:
$ sudo systemctl restart jupyter
En este punto, debería poder acceder a Jupyter con su nombre de dominio en http://yourdomain.com. Para obtener más información sobre Jupyter, sus características y configuración, consulte su documentación oficial.
Por supuesto, no es necesario que sepa cómo instalar Jupyter en Ubuntu 18.04 si tiene alojamiento VPS de Ubuntu administrado con nosotros. Simplemente puede pedirle a nuestro equipo de soporte que instale Jupyter 10 en Ubuntu 18.04 por usted. Están disponibles las 24 horas del día, los 7 días de la semana y podrán ayudarlo con la instalación de Jupyter 10 en Ubuntu 18.04.
En caso de que ya haya cambiado a Ubuntu 20.04, tenemos el tutorial perfecto sobre cómo instalar Jupyter Notebook en Ubuntu 20.04.
PD . Si disfruta leyendo esta publicación de blog sobre cómo instalar Jupyter en Ubuntu 18.04 , siéntase libre de compartirlo en las redes sociales utilizando los accesos directos a continuación, o simplemente deje un comentario.