Pirobits
  

Python piepenv tutorial: gestiona dependencias como un pro

alberto avatar Alberto Sola · 3/19/2024 · 2 min

Cuando trabajas con python necesitas instalar paquetes y gestionar dependencias. Si tienes varios proyectos, las dependencias pueden cruzarse y ocasionar problemas. Te cuento cómo pipenv soluciona este problema.

Introducción

Cuando estás trabajando en un proyecto con Python y tienes que instalar un paquete normalmente ejecutas python3 -m pip install <paquete>. ¿Qué pasa si dos proyectos dependen de versiones diferentes de un mismo paquete? Que puede haber problemas.

Para ello se crearon los "virtual envs" o "venv", de forma que puedes tener diferentes versiones de Python con sus respectivos paquetes en un mismo ordenador.

En este caso pipenv es la herramienta, bastante popular, que te permite gestionar los entornos virtuales de python en tu ordenador. Algo así como npm en el ecosistema de Node.

Te explico los conceptos básicos para poder utilizarlo tú también.

Tutorial: cómo utilizar pipenv

Lo primero es instalar pipenv con el siguiente comando:

python3 -m pip install pipenv

Con esto ya puedes utilizar el comando pipenv para gestionar los entornos. ¡Sigue leyendo!

En mi caso no me funcionó debido a que la carpeta de python de mi usuario no está en el path. Simplemente ejecuta el comando python -m site --user-base y añade la ruta que te proporciona y añade /bin al final, a las variables de tu PATH, en mi caso: export PATH="/Users/alberto/Library/Python/3.9/bin:$PATH".

Bien, ahora los comandos básicos que debes conocer:

Instalar dependencias

Este comando crea un entorno virtual si no existe, por lo que puedes lanzarlo directamente.

pipenv install <paquete>

Activar un entorno virtual

pipenv shell

Una vez dentro puedes ejecutar:

python fichero.py

Ejecutar un fichero

pipenv run python fichero.py

Crear un entorno virtual

pipenv --python <version>

Eliminar un entorno virtual

pipenv --rm

Virtualenv

Hay otra herramienta a más bajo nivel que es virtualenv que te permite crear directorios que contienen todas las dependencias para ejecutar el proyecto con una versión de python concreta.

Te dejo aquí un enlace con toda la documentación de la herramienta.

Resumen

En mi caso utilizo pipenv cuando lo necesito ya que es lo más cómodo. Esto me recuerda cuando empecé a trabajar donde teníamos diferentes proyectos, todos con python, virtualenv y docker.

¿Te ha resultado útil este artículo? Suscríbete a mi newsletter y da el primer paso para lanzar productos IT más rápido. Recibirás consejos exclusivos que te acercarán a tus objetivos.


Posts recientes