Pipenv

Tabla de contenidos:

Que es Pipenv?

Pipenv es un administrador de dependencias para proyectos de Python. Si está familiarizado con npm de Node.js o con el bundler de Ruby, es similar en espíritu a esas herramientas. Si bien pip puede instalar paquetes de Python, se recomienda Pipenv, ya que es una herramienta de nivel superior que simplifica la administración de dependencias para casos de uso comunes.

Pipenv es una herramienta que tiene como objetivo llevar al mundo de Python lo mejor de todos los mundos de empaque (empaquetado, compositor, npm, carga, hilo, etc.).

Crea y gestiona automáticamente un virtualenv para sus proyectos, así como también agrega / elimina paquetes de su Pipfile a medida que instala / desinstala paquetes. También genera el siempre importante Pipfile.lock, que se utiliza para producir compilaciones deterministas.

Que problemas resuelve Pipenv?

Los problemas que Pipenv busca resolver son multifacéticos:

Pipenv Install

A continuación listamos como instalar Pipenv en distintas distribuciones

Instalar Pipenv en MacOS

Si estás en MacOS, puedes instalar Pipenv fácilmente con Homebrew. También puede usar Linuxbrew en Linux usando el mismo comando:

brew install pipenv

Para hacer upgrade de pipenv puedes utilizar el siguiente comando:

brew upgrade pipenv

Instalar Pipenv en Debian Buster+

Para instalar Pipenv en Debian Buster +, puedes hacerlo a través del gestor de paquetes del propio sistema operativo:

sudo apt install pipenv

Instalar Pipenv en Fedora

Para instalar Pipenv en Fedora, puedes utilizar el siguiente comando:

sudo dnf install pipenv

Instalar Pipenv en FreeBSD

Para instalar Pipenv en FreeBSD, puedes utilizar el siguiente comando:

pkg install py36-pipenv

Instalación genérica de Pipenv

Si tiene una instalación funcional de pip, y mantiene ciertos módulos de Python tipo “cadena de herramientas” como utilidades globales en su entorno de usuario, las instalaciones de usuario de pip permiten la instalación en su directorio de inicio. Tenga en cuenta que debido a la interacción entre dependencias, debe limitar las herramientas instaladas de esta manera a los bloques de construcción básicos para un flujo de trabajo de Python como virtualenv, pipenv, tox y software similar.

Para instalar Pipenv con pip puede utilizar el siguiente comando:

pip install --user pipenv

NOTA: Esto hace una instalación del usuario para evitar romper los paquetes de todo el sistema. Si pipenv no está disponible en su shell después de la instalación, deberá agregar el directorio binario de la base de usuarios a su RUTA.

Instalar Pipenv sin tener pip instalado

Si no tiene instalado pip, puede usar este método de instalación:

curl https://raw.githubusercontent.com/pypa/pipenv/master/get-pipenv.py | python

Instalación de dependencias con Pipenv

Pipenv gestiona las dependencias por proyecto. Para instalar paquetes, cambie al directorio de su proyecto (o simplemente a un directorio vacío si solo quiere probarlo) y ejecute:

cd pipenvtestproject
pipenv install flask

Con este último comando, pipenv instalará Flask y creará un Pipfile en el directorio base de tu proyecto.

NOTA: El Pipfile se usa para rastrear qué dependencias necesita su proyecto en caso de que necesite volver a instalarlas, como cuando comparte su proyecto con otros

Si quisieramos instalar flask con una versión especifica podemos utilizar el siguiente comando:

cd pipenvtestproject
pipenv install flask~= 1.1.2

NOTA: Se prefiere el uso de ~= sobre el identificador == ya que este último evita que pipenv actualice los paquetes

Para más información sobre como especificar versiones con Pipenv puede ir al PEP-0440 dónde se dan más detalles.

Usando paquetes instalados con Pipenv

Para probar que la instalación de Flask con pipenv ha funcionado, podemos crear un fichero al que le daremos el nombre de flaskapp.py con el siguiente contenido:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def test():
    return 'La instalación de Flask con Pipenv funciona!'

A continuación, vamos a utilizar el siguiente comando para activar la consola de Pipenv:

pipenv shell

Ahora toca exportar la variable FLASK_APP y hacer correr la instalación:

export FLASK_APP=flaskapp.py
flask run

Si todo ha funcionado, debería salir un mensaje donde dice que tenemos un servidor de flask corriendo en http://127.0.0.1:5000 al que podemos acceder y debería devoler el texto que le hayamos introducido a la respuesta de la función, en nuestro caso: La instalación de Flask con Pipenv funciona!

Usar un fichero requirements.txt con Pipenv

Si solo tiene un archivo require.txt disponible cuando ejecuta pipenv install, pipenv importará automáticamente el contenido de este archivo y creará un archivo Pip para usted.

También puede especificar pipenv install -r ruta/a/requirements.txt para importar un archivo de requisitos.

Si su archivo de requisitos tiene números de versión anclados, es probable que desee editar el nuevo Pipfile para eliminarlos y dejar que pipenv realice un seguimiento de la fijación. Si desea mantener las versiones ancladas en su Pipfile.lock por ahora, ejecute pipenv lock –keep-outdated. ¡Asegúrate de actualizar pronto!

Recursos adicionales

Documentación de Pipenv

Para más información sobre todas las funcionalidades de Pipenv, puede consultar la documentación de Pipenv

Github de Pipenv

Puedes encontrar el código del proyecto en su repositorio de github

https://github.com/pypa/pipenv

Pipenv en el navegador

Si te quieres hacer una idea rápida de como funciona pipenv sin instalar nada, puedes jugar rápidamente con Pipenv directamente en tu navegador través del siguiente enlace

¡Si te ha gustado comparte y comenta!