El autor seleccionó la Apache Software Foundation para que recibiera una donación de $100 como parte del programa Write for DOnations.
Jupyter Notebook es una aplicación web interactiva de código abierto que le permite escribir y ejecutar código informático en más de 40 lenguajes de programación, incluidos Python, R, Julia y Scala. Jupyter Notebook, un producto de Project Jupyter, es útil para la codificación iterativa, ya que le permite escribir un pequeño fragmento de código, ejecutarlo y obtener el resultado.
Jupyter Notebook proporciona la capacidad de crear documentos notebook, denominados simplemente “notebooks”. Los notebooks creados desde Jupyter Notebook son documentos de investigación reproducibles e intercambiables que incluyen elementos de texto enriquecido, ecuaciones, código y sus resultados (cifras, tablas, tramas interactivas). También pueden exportarse a archivos de código sin procesar, HTML o documentos PDF, o bien utilizarse para crear presentaciones de diapositivas interactivas o páginas web.
A través de este artículo, aprenderá a instalar y configurar la aplicación Jupyter Notebook en un servidor web de Ubuntu 18.04, y también a conectarse a ella desde su computadora local. Además, también veremos cómo utilizar Jupyter Notebook para ejecutar un ejemplo de código de Python.
Para completar este tutorial, necesitará lo siguiente:
venv
de Python instalados en el servidor. Para hacerlo siga los pasos 1 y 2 de nuestro tutorial Cómo instalar Python 3 y configurar un entorno de programación local en Ubuntu 18.04.Además, si su computadora local tiene Windows instalado, deberá instalar PuTTY para establecer un túnel SSH hacia su servidor. Siga nuestra guía Cómo crear claves SSH con PuTTY en Windows para descargar e instalar PuTTY.
Dado que los notebooks se utilizan para escribir, ejecutar y ver el resultado de pequeños fragmentos de código, primero deberá configurar la compatibilidad de lenguajes de programación. Jupyter Notebook utiliza un kernel específico de lenguaje, un programa informático que ejecuta e inspecciona código. Jupyter Notebook tiene muchos kernels en diferentes lenguajes y el predeterminado es IPython. A través de este tutorial, configurará Jupyter Notebook para ejecutar código de Python a través del kernel de IPython.
Suponiendo que haya seguido los tutoriales con vínculos de la sección de requisitos previos, debería tener instalados Python 3, pip y un entorno virtual. Los ejemplos de esta guía cumplen con la convención utilizada en el tutorial de los requisitos previos respecto de la instalación de Python 3, por la cual se denomina al entorno virtual “my_env
”. Sin embargo, podrá asignarle el nombre que desee.
Comience activando el entorno virtual:
- source my_env/bin/activate
A continuación, su linea de comandos llevará como prefijo el nombre de su entorno.
Ahora que se encuentra en su entorno virtual, instale Jupyter Notebook:
- python3 -m pip install jupyter
Si la instalación fue correcta, verá un resultado similar a este:
Output. . .
Successfully installed MarkupSafe-1.0 Send2Trash-1.5.0 backcall-0.1.0 bleach-2.1.3 decorator-4.3.0 entrypoints-0.2.3 html5lib-1.0.1 ipykernel-4.8.2 ipython-6.4.0 ipython-genutils-0.2.0 ipywidgets-7.2.1 jedi-0.12.0 jinja2-2.10 jsonschema-2.6.0 jupyter-1.0.0 jupyter-client-5.2.3 jupyter-console-5.2.0 jupyter-core-4.4.0 mistune-0.8.3 nbconvert-5.3.1 nbformat-4.4.0 notebook-5.5.0 pandocfilters-1.4.2 parso-0.2.0 pexpect-4.5.0 pickleshare-0.7.4 prompt-toolkit-1.0.15 ptyprocess-0.5.2 pygments-2.2.0 python-dateutil-2.7.3 pyzmq-17.0.0 qtconsole-4.3.1 simplegeneric-0.8.1 six-1.11.0 terminado-0.8.1 testpath-0.3.1 tornado-5.0.2
Con esto, Jupyter Notebook quedará instalado en su servidor. A continuación, veremos la forma de ejecutar la aplicación.
Jupyter Notebook debe ejecutarse desde su VPS, de modo que pueda conectarse a ella desde su computadora local utilizando un túnerl SSH y su navegador web favorito.
Para ejecutar el servidor Jupyter Notebook, instroduzca el siguiente comando:
- jupyter notebook
Después de ejecutar este comando, verá un resultado similar a este:
Output[I 19:46:22.031 NotebookApp] Writing notebook server cookie secret to /home/sammy/.local/share/jupyter/runtime/notebook_cookie_secret
[I 19:46:22.365 NotebookApp] Serving notebooks from local directory: /home/sammy/environments
[I 19:46:22.365 NotebookApp] 0 active kernels
[I 19:46:22.366 NotebookApp] The Jupyter Notebook is running at:
[I 19:46:22.366 NotebookApp] http://localhost:8888/?token=Example_Jupyter_Token_3cadb8b8b7005d9a46ca4d6675
[I 19:46:22.366 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 19:46:22.366 NotebookApp] No web browser found: could not locate runnable browser.
[C 19:46:22.367 NotebookApp]
Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
http://localhost:8888/?token=Example_Jupyter_Token_3cadb8b8b7005d9a46ca4d6675&tokenExample_Jupyter_Token_3cadb8b8b7005d9a46ca4d6675
Es posible que en el resultado observe una advertencia No web browser found
. Esto es normal, ya que la aplicación se ejecuta en un servidor y probablemente no haya instalado en él un navegador web. A través de esta guía, verá la forma de conectarse a Notebook en el servidor utilizando túneles SSH en la siguiente sección.
Por ahora, salga de Jupyter Notebook presionando CTRL+C
e y
, y luego utilice ENTER
para confirmar:
OutputShutdown this notebook server (y/[n])? y
[C 20:05:47.654 NotebookApp] Shutdown confirmed
[I 20:05:47.654 NotebookApp] Shutting down 0 kernels
Luego, cierre el servidor con el comando exit
:
- exit
Ejecutó Jupyter Notebook en su servidor. Sin embargo, para acceder a la aplicación y comenzar a trabajar con notebooks, deberá conectarse a ella mediante túneles SSH y un navegador web en su computadora local.
Los túneles SSH son una alternativa sencilla y rápida para conectarse a la aplicación Jupyter Notebook de su servidor. El shell seguro (más conocido como SSH) es un protocolo de red que le permite conectarse a un servidor remoto de forma segura a través de una red no protegida.
El protocolo SSH incluye un mecanismo de enrutamiento de puerto que le permite canalizar algunas aplicaciones que se ejecutan en un número de puerto específico de un servidor a un número de puerto específico en su computadora local. Aprenderemos a “enrutar” de forma segura la aplicación Jupyter Notebook de su servidor (en el puerto 8888
, por defecto) a un puerto de su computadora local.
El método que utilice para establecer un túnel SSH dependerá del sistema operativo de su computadora local. Entre las subsecciones que se muestran a continuación,elija la que sea más pertinente para su computadora.
Nota: Es posible configurar e instalar Jupyter Notebook utilizando DigitalOcean Web Console, pero la conexión a la aplicación mediante un túnel SSH debe realizarse a través del terminal o con PuTTY.
Si su computadora local tiene Linux o macOS instalado, es posible establecer un túnel SSH con un solo comando.
ssh
es el comando estándar para abrir una conexión SSH, pero cuando se utiliza con la directiva -L
se puede especificar que un puerto determinado en el host local (es decir, su computadora local) se envíe a un host y un puerto determinados en el host remoto (en este caso, su servidor). Esto significa que lo que ejecute en el puerto especificado en el servidor remoto (8888
, el puerto predeterminado de Jupyter Notebook) aparecerá en el puerto especificado en su computadora local (8000
en el comando del ejemplo).
Para establecer su propio túnel SSH, ejecute el siguiente comando. Puede cambiar el puerto 8000
por uno de su elección si, por ejemplo, otro proceso utiliza el puerto 8000
. Se le recomienda utilizar un puerto mayor o igual al 8000
, ya que es improbable que otros procesos utilicen esos números de puertos. Asegúrese de incluir la dirección IP de su propio servidor y el nombre de su usuario no root del servidor:
- ssh -L 8000:localhost:8888 sammy@your_server_ip
Si no hay errores en este comando, accederá a su servidor remoto. Desde allí, active el entorno virtual:
- source ~/environments/my_env/bin/activate
Luego, ejecute la aplicación Jupyter Notebook:
- jupyter notebook
Para conectarse a Jupyter Notebook, utilice su navegador web favorito y diríjase al puerto local del host local: http://localhost:8000
. Ahora que estableció conexión con Jupyter Notebook, continúe con el Paso 4 para aprender a utilizarla.
PuTTY es un cliente SSH de código abierto para Windows que puede utilizarse para conectarse a su servidor. Tras descargar e instalar PuTTY en su computadora con Windows (como se describe en el tutorial de los requisitos previos), abra el programa e introduzca la URL o la dirección IP de su servidor, como se muestra aquí:
A continuación, haga clic en + SSH en la parte inferior izquierda del panel y luego en Tunnels. En esta ventana, introduzca el puerto que desea utilizar para acceder a Jupyter en su computadora local (8000
). Se le recomienda utilizar un puerto mayor o igual al 8000
, ya que es improbable que otros procesos utilicen esos números de puertos. Si otro proceso utiliza el puerto 8000
, seleccione un número de puerto diferente que no se haya utilizado. A continuación, establezca el destino como localhost:8888
, ya que Jupyter Notebook funciona en el puerto 8888
. Luego, haga clic en el botón Add. Deberían aparecer los puertos en el campo Forwarded ports:
Por último, haga clic en el botón Open. Esto conectará su computadora al servidor a través de SSH y canalizará los puertos deseados. Si no aparecen errores, active su entorno virtual:
- source ~/environments/my_env/bin/activate
Luego, ejecute Jupyter Notebook:
- jupyter notebook
A continuación, diríjase al puerto local en su navegador web favorito, una opción puede ser http://localhost:8000
(o cualquier número de puerto que haya elegido), para establecer conexión con la instancia de Jupyter Notebook del servidor. Ahora que estableció conexión con Jupyter Notebook, continúe con el Paso 4 para aprender a utilizarla.
Cuando se accede a través de un navegador web, Jupyter Notebook proporciona un panel de notebooks que funciona como navegador de archivos y le proporciona una interfaz para crear, editar y explorar notebooks. Considere estos notebooks como documentos (guardados con una extensión de archivo .ipynb
) que usted puede llenar con cualquier número de celdas individuales. Cada celda tiene un editor de texto interactivo que puede utilizarse para ejecutar código o escribir texto representado. Además, los notebooks le permiten escribir y ejecutar ecuaciones e incluir otros medios, como imágenes o tramas interactivas. También se pueden exportar y compartir en varios formatos (.ipyb
, .pdf
, .py
). Para mostrar algunas de estas funciones, crearemos un archivo notebook desde el panel de notebooks, escribiremos una tabla de texto sencilla con una ecuación y ejecutaremos código básico de Python 3.
En este punto, deberá estar conectado al servidor a través de un túnel SSH y haber iniciado la aplicación Jupyter Notebook desde su servidor. Una vez que se dirija a http://localhost:8000
, verá aparecer una página de inicio de sesión:
En el campo Password or token de la parte superior, introduzca el token que vio aparecer en el resultado después de ejecutar jupyter notebook
desde su servidor:
Output[I 20:35:17.004 NotebookApp] Writing notebook server cookie secret to /run/user/1000/jupyter/notebook_cookie_secret
[I 20:35:17.314 NotebookApp] Serving notebooks from local directory: /home/sammy
[I 20:35:17.314 NotebookApp] 0 active kernels
[I 20:35:17.315 NotebookApp] The Jupyter Notebook is running at:
[I 20:35:17.315 NotebookApp] http://localhost:8888/?token=Example_Jupyter_Token_3cadb8b8b7005d9a46ca4d6675
[I 20:35:17.315 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 20:35:17.315 NotebookApp] No web browser found: could not locate runnable browser.
[C 20:35:17.316 NotebookApp]
. . .
También puede copiar esa URL del resultado de su terminal y pegarla en la barra de direcciones de su navegador.
De forma automática, Jupyter notebook mostrará los archivos y las carpetas almacenados en el directorio desde el que se ejecuta. Cree un nuevo archivo notebook haciendo clic en New y luego en Python 3 en la parte superior derecha del panel de notebooks:
Dentro de este nuevo notebook, cambie la primera celda para aceptar sintaxis de lenguaje de marcado presionando Cell > Cell Type > Markdown en la barra de navegación de la parte superior. Esta categoría “Cell Type” también le permite escribir ecuaciones en LaTeX además de usar lenguaje de marcado. Por ejemplo, escriba lo siguiente en la celda después del cambio a lenguaje de marcado:
# Simple Equation
Let us now implement the following equation in Python:
$$ y = x^2$$
where $x = 2$
Para convertir el lenguaje de marcado en texto enriquecido, presione CTRL + ENTER
. Debería aparecer el siguiente resultado:
Puede utilizar las celdas de lenguaje de marcado para crear notas y documentar su código.
Ahora, implementaremos una ecuación sencilla y mostraremos el resultado. Haga clic en **Insert **> Insert Cell Below para insertar una celda. En esta nueva celda, introduzca el siguiente código:
x = 2
y = x*x
print(y)
Para ejecutar el código, presione CTRL + ENTER
. Se mostrará el siguiente resultado:
Estos son algunos ejemplos relativamente sencillos de lo que puede hacer con Jupyter Notebook. Sin embargo, es una aplicación muy potente que puede implementarse en muchos casos de uso. Desde aquí, puede agregar algunas bibliotecas de Python y utilizar el notebook como haría con cualquier otro entorno de desarrollo de Python.
Ahora, debería poder escribir código y texto reproducible de Python utilizando Jupyter Notebook en un servidor remoto. Para ver rápidamente Jupyter Notebook, haga clic en Help en la barra de navegación superior y seleccione User Interface Tour, como se muestra aquí:
Si le interesa, le sugerimos obtener más información sobre Jupyter Notebook consultando la documentación de Project Jupyter. Además, puede aprovechar lo que aprendió en este tutorial aprendiendo a codificar en Python 3.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!