pipenv

Cuando trabajamos con Python siempre lo haremos con entornos virtuales, uno por proyecto. Antiguamente, se utilizaba "virtualenv" o "pyenv" para configurar estos entornos, pero en 2017 se creo "Pipenv" que es hoy en día el paquete recomendado por Python, aunque existen otras alternativas como "Poetry" o "Conda". Pipenv es un gestor de dependencias, al igual que lo es "npm" para Node o "composer" para PHP. Y para instalarlo podemos ejecutar:
Cuando instalas Python en tu máquina, también estás instalando "pip" que es el gestor de paquetes de Python por defecto, pero entonces ¿Qué diferencia hay entre pip y pipenv? pipenv es una versión mejorada de pip.

Podemos usar pip para instalar los paquetes que necesite nuestro proyecto, pip creará un fichero requirements.txt donde pondrá los paquetes instalados. Más adelante si queremos instalar el proyecto en otra máquina bastará con ejecutar $ pip install -r requirements.txt El mayor problema de pip es que guarda los paquetes en la versión en la que se instalaron y si queremos actualizarlos por la razón que sea, tendremos que ir uno a uno, no es un gran problema, pero consume mucho tiempo.

pipenv crea el entorno virtual automáticamente. Para instalar dependencias utilizaremos $ pipenv install paquete. Una vez instalada se guardará la referencia en un nuevo fichero llamado "Pipfile".

Pip no es capaz de resolver conflictos de dependencia entre paquetes, asi que tienes que seleccionar manualmente cada version en el requirements.txt. Por tanto una ventaja frente a pip es que cuando se cambia la versión del paquete, se vuelven a revisar todas las versiones de las dependencias. También tenemos un nuevo fichero Pipfile.lock con el hash exacto del paquete, lo que agrega protección de seguridad al proceso de instalación.

Además de librerías podemos usar pipenv para instalar framweworks como Django o Flask.

Comentarios

Entradas populares de este blog

Django REST framework

Envío de checkboxes o selector multiple por AJAX con jQuery

Django: relaciones polimórficas