sábado, 27 de marzo de 2021

Instalar y configurar Jupyter Notebook

¿Qué es Jupyter Notebook?

Jupyter Notebook permite que, sin necesidad de tener configurado un entorno de desarrollo para Python y sin necesidad de tener que ejecutar un archivo .py con el código fuente, podamos ejecutar código Python y comprobar su salida desde un entorno web. Los cuadernos que maneja Jupyter Notebook tienen una extensión .ipynb y puede combinar partes de texto explicativo, ejecución de código en caliente, entrada y salida dinámica de datos, assets de datos, generación de gráficos…etc.

Instalación de Jupyter Notebook

Jupyter se instala como un paquete dentro de nuestra configuración de Python. En este manual se realizará mediante el administrador de paquetes pip ya que viene por defecto con Python3 y lo vamos a poder realizar de la manera que aquí se explica en cualquier instalación. Antes de empezar, es necesario tener correctamente instalado Python y poder manejar entornos virtuales tal y como explicaba en este otro post.

En primer lugar comprobamos que tenemos la versión más reciente de pip lanzando el comando python3 -m pip install --upgrade pip


 

Creamos un entorno virtual donde instalaremos jupyter con el comando python3 -m venv jupiter_dir y comprobamos que se ha creado un directorio válido para contener un entorno de Python.


 

Activamos el entorno virtual de jupyter para instalar dentro nuestro Jupyter Notebook con el comando source jupiter_dir/bin/activate


 

Instalamos en el entorno virtual el paquete jupyter con el comando pip3 install jupyter


 

Y ejecutamos jupyter para comprobar que se ha instalado correctamente con el comando jupyter notebook


 

Y como podemos comprobar se lanza el servicio de jupyter escuchando en nuestro localhost (127.0.0.1) y puerto 8888. Podemos comprobar que se está ejecutando correctamente si introducimos en un navegador http://localhost:8888

 


 

Es interesante indicar que cuando arrancamos el servicio de jupyter, este genera un toquen único para la sesión y que nos va a permitir loggarnos o consumir el servicio en otros contextos. 



También comprobamos que el nivel de trazas que ofrece por defecto, sin necesidad de tocar archivos de configuración son adecuados. Muestra todas las peticiones GET y POST que se van realizando así como sus tiempos de respuesta y resultado.



 Y si queremos hacer un shutdown del servicio, basta con lanzar crt+c y confirmar que queremos pararlo

 


 

domingo, 7 de marzo de 2021

Instalar y configurar python 3 en Ubuntu


Una vez que hemos decidido utilizar python como lenguaje de programación para llevar a cabo nuestro software, lo primero que tenemos que hacer es configurar nuestro entorno de desarrollo. El siguiente manual se realiza para instalar y configurar Python 3 sobre Ubuntu.

Instalación de Python 3 en Ubuntu

En primer lugar procederemos a instalar Python 3 en su versión más reciente, para ello abrimos una tty y lanzamos el siguiente comando:


rencinar@kmetempsicosis:~$ sudo apt-get install python3


Es importante reseñar que debe ser el paquete python3 ya que si ponemos python realizará la instalación de Python 2.7 cuya versión ya está deprecada.
Comprobamos la versión que nos ha instalado con el siguiente comando (en mi caso es python 3.8.5)


rencinar@kmetempsicosis:~$ python3 -V


 

Instalar administrador de paquetes


Ahora vamos a instalar un administrador de paquetes que nos permita instalar librerías y extensiones para Python de una manera sencilla y eficaz. En general los gestores de paquetes más extendidos son conda (que pertenece al proyecto de Anaconda) y pip (que pertenece al proyecto PyPA). Yo me he decantado por pip porque es el que más tiempo lleva con el proyecto Python y me parece el más estándar, pero salvo que vayamos a utilizar paquetes escritos en otros lenguajes como C++ o R en cuyo caso seguramente nos hubiésemos decantado ya por utilizar el entorno y versión de Python que nos ofrece Anaconda, ambos cubrirán nuestras necesidades de manera eficaz.


rencinar@kmetempsicosis:~$ sudo apt install -y python3-pip

 



Comprobamos la versión de pip que tenemos instalada y que se ejecuta correctamente con el siguiente comando:

rencinar@kmetempsicosis:~$ pip3 -V


Para finalizar, es recomendable incluir en la variable de entorno PATH la ruta de la carpeta bin de la instalación de pip. De esta manera permitimos que el sistema sepa dónde encontrar esos ejecutables si nos encontramos en otro árbol de directorios distinto al de la instalación.

De no hacerlo, podemos tener problemas de que no encuentre el comando pip tal y como muestra el siguiente warning.



Para incluirla en la variable PATH y teniendo en cuenta que mis ejecutables se encuentran en la carpeta /home/rencinar/.local/bin/ 


 

Lanzamos el comando export PATH=/home/rencinar/.local/bin:$PATH y comprobamos con el comando echo $PATH que se ha incluido la ruta


 

Paquetes extra para un entorno de desarrollador


Para no tener problemas a la hora de compilar e instalar paquetes de forma manual en Linux deberemos instalar el paquete build-essential (trae compiladores como el gcc para c, g++ para c++, make, …etc) junto con otros paquetes muy interesantes para desarrollar en python como es python3-dev que contiene todas las librerías de manera estática de Python 3. Para ello lanzamos el siguiente comando:


rencinar@kmetempsicosis:~$ sudo apt install build-essential libssl-dev libffi-dev python3-dev


Trabajar con entornos virtuales en Python

Una característica que me parece muy interesante a la hora de desarrollar en Python es poder trabajar cada proyecto en un entorno de desarrollo aislado del entorno troncal de Python. Y ¿Qué quiere decir esto?, pues que podemos tener un proyecto “A” solo con los paquetes imprescindibles que necesite, con unas versiones concretas de los mismos y con una configuración muy específica y en esa misma máquina podremos tener otro proyecto “B” con otros paquetes completamente distintos, con otras versiones y dichas configuraciones completamente aisladas entre sí.
Antes podíamos encontrar distintos módulos que nos ayudaban en esta tarea como eran virtualenv o pyvenv pero desde la versión de Python 3.6 se estableció el módulo venv como el estándar para crear este tipo de entornos virtuales.


Para empezar a utilizarlos lo primero que tenemos que hacer es instalar el modulo python3-venv con el siguiente comando:


rencinar@kmetempsicosis:~$ sudo apt install -y python3-venv

Ahora podemos crear nuestro primer entorno virtual con el comando python3  -m venv nombre_de_mi_entorno

rencinar@kmetempsicosis:~$ python3  -m venv dev_course

Y lo que nos crea es toda una estructura de directorios con librerías y demás elementos para poder desarrollar el proyecto con Python utilizando esa configuración.


Para ver que el entorno se ha creado correctamente y poder trabajar bajo él deberemos utilizar el comando source y la ruta donde se encuentre el archivo activate de nuestro entorno. En mi caso, como he creado el entorno virtual dev_course lanzaré el siguiente comando:



rencinar@kmetempsicosis:~$ source dev_course/bin/activate

Podemos comprobar que se ha creado correctamente y que estamos trabajando en el porque al inicio del prompt nos pone entre paréntesis el nombre del entorno.


(dev_course) rencinar@kmetempsicosis:~$


Ahora lanzamos python3 y probamos que funciona adecuadamente.



Tras esto podemos salir de Python como siempre con la orden exit() y salir del entorno con el comando deactivate



Y si lo que queremos es eliminar este entorno virtual bastará con borrar la carpeta y ya habremos eliminado el entorno.