Manejar el gestor de dependencias pip y el entorno virtual en Python
¡Hola! Para el tutorial de hoy quiero explicar algo más introductorio en Python como es el administrador de dependencias pip y el entorno virtual para mejorar la sección de Python de la web, ya que creo que es importante explicar bien esto para todo el que esté empezando con Python.
¿Qué es Pip?
Pip es un sistema de gestión de paquetes para instalar y administrar librerías en Python, esto nos ayuda a tener organizadas las librerías externas que usemos para nuestro proyecto. Muchas de las librerías que se pueden instalar se pueden encontrar en PyPI.
Instalar Pip
Pip viene instalado por defecto desde la versión 2.7.9 de Python 2 y desde la versión 3.4 de Python 3 por lo que no haría falta realizar ningún paso adicional si ya tienes instalado Python.
Comandos más usados
A continuación vamos a explicar los comandos más usados para familiarizarte con este comando. Yo voy a usar pip3 porque quiero forzar a que se instalen en la versión 3 de Python, si queréis instalarlo en otra versión podéis añadirla a pip o usando simplemente pip se instalá en la versión por defecto de tu equipo.
Instalar un paquete:
pip3 install <nombre-paquete>
Eliminar un paquete:
pip3 uninstall <nombre-paquete>
También podemos instalar paquetes desde un archivo como se muestra con el siguiente comando:
pip3 install -r requirements.txt
Dentro de nuestro archivo listaremos los nombres de los paquetes que queremos instalar y listo, además también podemos añadir la versión del paquete si tenemos algún problema de compatibilidad, si no nos instalará la última versión de la librería.
Un ejemplo de un archivo requirements.txt (le podéis poner el nombre que queráis) sería este:
Django==2.2.11
django-ckeditor==5.9.0
django-environ==0.4.5
django-js-asset==1.2.2
Pillow==7.0.0
psycopg2==2.8.4
pytz==2019.3
sqlparse==0.3.1
Unidecode==1.1.1
Para saber los paquetes que tenemos instalados usaremos freeze.
pip3 freeze
Este comando nos mostrará una lista con las librerías y sus versiones.
Vale, esto está muy bien pero de esta forma estaremos instalando estas librerías de forma global en nuestro equipo y ahora os preguntaréis ¿Cómo instalar librerías en un proyecto en concreto?
Bien, esto lo solucionaremos creando un entorno virtual.
¿Qué es un entorno virtual en Python?
El módulo venv, que es el que usaremos para crear nuestro entorno virtual, es una herramienta por el cual se creará un entorno aislado del sistema con la versión de Python que usemos para crear el entorno virtual y en el que podremos añadir las librerías que queramos independientemente de la instalación global en nuestro sistema.
Cómo crear un entorno virtual con venv
En el directorio raíz de nuestro proyecto, abrimos la consola y tendremos que lanzar el siguiente comando:
python3 -m venv <nombre-entorno>
Yo por lo general lo nombro como env, pero podéis usar el nombre que queráis.
En el caso de estar trabajando con una versión de Python que no tenga esta herramienta, podéis instalarla con pip y crear el entorno virtual de la siguiente forma:
pip install virtualenv
virtualenv -p python env
Una vez creado tenemos que activarlo, para ello usaremos el siguiente comando si estamos en Windows:
env/Scripts/activate
Para Ubuntu Y Mac lo haremos de la siguiente forma:
source env/bin/activate
Al activar el entorno virtual nos aparecerá al principio de la línea de comandos el nombre del entorno virtual entre paréntesis para indicarnos que lo tenemos activado.
Si queremos desactivarlo usaremos deactivate tanto en Windows como en Mac y Ubuntu.
deactivate
Una vez activado el entorno virtual ya podremos instalar las librerías que queramos para nuestro proyecto y mientras esté activo ya no necesitaremos añadir la versión ni al comando Python ni pip, ya que usará por defecto la versión instalada en el entorno virtual que en nuestro caso sería la versión 3 que es la que utilizamos para crear el entorno virtual.
Espero que este post te ayude y como siempre, te recomiendo seguirme en Twitter para estar al tanto de los nuevo contenido. Ahora también puedes seguirme en Instagram donde estoy subiendo tips, tutoriales en vídeo e información sobre herramientas para developers.
Por último os dejo mi guía para aprender a trabajar con APIs donde explico todo el funcionamiento de una API, el protocolo HTTP y veremos como construir una API con arquitectura REST.
Nos leemos 👋.