Gestión del entorno Python con Pipenv

Hola mi amigo


Asumiré que pip y virtualenv todavía se usan para controlar el entorno de Python en su proyecto.


Si es así, déjame contarte sobre una herramienta como Pipenv.


Pipenv es una herramienta moderna para administrar el entorno de trabajo en Python.


Características clave de pipenv:


  • Crear y gestionar un entorno virtual.
  • Sincronización de paquetes Pipfile durante la instalación y eliminación de paquetes
  • Carga automática de variables de entorno desde un archivo .env

Como buen ejemplo, compare el uso de pip y virtualenv con pipenv para crear un entorno virtual:


  1. pip y virtualenv


    $ virtualenv venv $ source venv/bin/activte $ pip install Flask gunicorn $ pip freeze > requirements.txt 

  2. pipenv


     $ pipenv install Flask gunicorn 


Empezando


Instale la última versión de pipenv:


 $ pip install pipenv 

Gestión del entorno laboral.


Vayamos al directorio con el proyecto Python y creemos un entorno virtual que especifique la versión del intérprete:


 $ cd yourproject $ pipenv --python 3.7 

El equipo creará automáticamente un nuevo entorno virtual para su proyecto si aún no existe.


Puede activar el entorno virtual del proyecto ejecutando el comando de shell :


 $ pipenv shell 

Para salir del shell del entorno virtual, use el exit :


 $ exit 

Gestión de dependencia de aplicaciones


Para instalar paquetes, use el comando de install :


 $ pipenv install Flask 

Pipenv instalará la última versión del paquete Flask y la agregará automáticamente al Pipfile.


Durante la instalación, podemos especificar una versión específica del paquete:


 $ pipenv install Flask==1.0.2 

Los desarrolladores de esta herramienta también se encargaron de trabajar con el entorno de desarrollo, los paquetes que se necesitan en la etapa de ensamblaje o prueba de aplicaciones.


Si especifica el indicador --dev , el paquete se instalará como parte del entorno de desarrollo:


 $ pipenv install pytest --dev 

Para instalar todos los paquetes, incluidos los paquetes del entorno de desarrollo, debe ejecutar:


 $ pipenv install --dev 

Para desinstalar paquetes, hay un comando de uninstall :


 $ pipenv uninstall Flask 

La información sobre los paquetes instalados y sus dependencias se almacena en el archivo Pipfile.lock, que se genera automáticamente y no debe ser modificado por el usuario.


Ejecutando código fuente


Es posible ejecutar el código fuente dentro del shell virtualenv:


 $ pipenv run python yourapplication.py 

Si hay un archivo .env, los $ pipenv shell y $ pipenv run cargarán automáticamente las variables de entorno de él:


 $ cat .env DEBUG=1 $ echo $DEBUG 1 

Implementación de aplicaciones


Pipenv le permite instalar dependencias en el sistema principal especificando el indicador --system :


 $ pipenv install --system 

Esto es útil al implementar aplicaciones en Docker.


Si especifica el indicador --deploy , pipenv arrojará un error si Pipfile.lock está en desuso o si la versión de Python no coincide con la especificada.


Ejemplo de Dockerfile para trabajar con pipenv:


 FROM python:3.7 RUN pip3 install pipenv WORKDIR /usr/src/app COPY Pipfile ./ COPY Pipfile.lock ./ RUN set -ex && pipenv install --deploy --system COPY . . 

Un ejemplo de aplicación Flask que utiliza las características de Pipenv : github.com/fdhadzh/flask-pipenv-example .

Source: https://habr.com/ru/post/es413009/


All Articles