Python piepenv tutorial: gestiona dependencias como un pro
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.
Si te ha resultado útil este artículo agradecería si te suscribes a mi newsletter. Recibirás contenido exclusivo de calidad y también me ayudarás enormemente. Cada suscripción apoya el trabajo que realizo y me permite conocer mejor los temas que te interesan, de forma que puedo mejorar los conocimientos que comparto contigo.