Gestion de l'environnement Python avec Pipenv

Salut mon ami!


Je suppose que pip et virtualenv sont toujours utilisés pour contrôler l'environnement Python dans votre projet.


Si oui, laissez-moi vous parler d'un outil comme Pipenv.


Pipenv est un outil moderne de gestion de l'environnement de travail en Python.


Caractéristiques principales de pipenv:


  • Création et gestion d'un environnement virtuel
  • Synchronisation de packages Pipfile pendant l'installation et la suppression de packages
  • Chargement automatique des variables d'environnement à partir d'un fichier .env

À titre d'exemple, comparez à l'aide de pip et virtualenv avec pipenv pour créer un environnement virtuel:


  1. pip et virtualenv


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

  2. pipenv


     $ pipenv install Flask gunicorn 


Pour commencer


Installez la dernière version de pipenv:


 $ pip install pipenv 

Gestion de l'environnement de travail


Allons dans le répertoire avec le projet Python et créons un environnement virtuel spécifiant la version de l'interpréteur:


 $ cd yourproject $ pipenv --python 3.7 

L'équipe créera automatiquement un nouvel environnement virtuel pour votre projet s'il n'existe pas déjà.


Vous pouvez activer l'environnement virtuel du projet en exécutant la commande shell :


 $ pipenv shell 

Pour quitter le shell d'environnement virtuel, utilisez la exit :


 $ exit 

Gestion des dépendances des applications


Pour installer des packages, utilisez la commande install :


 $ pipenv install Flask 

Pipenv installera la dernière version du package Flask et l'ajoutera automatiquement au fichier Pipfile.


Lors de l'installation, nous pouvons spécifier une version spécifique du package:


 $ pipenv install Flask==1.0.2 

Les développeurs de cet outil ont également pris soin de travailler avec l'environnement de développement - les packages nécessaires au stade de l'assemblage ou du test des applications.


Si vous spécifiez l'indicateur --dev , le package sera installé dans le cadre de l'environnement de développement:


 $ pipenv install pytest --dev 

Pour installer tous les packages, y compris les packages d'environnement de développement, vous devez exécuter:


 $ pipenv install --dev 

Pour désinstaller des packages, il existe une commande de uninstall :


 $ pipenv uninstall Flask 

Les informations sur les packages installés et leurs dépendances sont stockées dans le fichier Pipfile.lock, qui est généré automatiquement et ne doit pas être modifié par l'utilisateur.


Exécution du code source


Il est possible d'exécuter le code source à l'intérieur du shell virtualenv:


 $ pipenv run python yourapplication.py 

S'il existe un fichier .env, les commandes $ pipenv shell et $ pipenv run chargeront automatiquement les variables d'environnement:


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

Déploiement d'applications


Pipenv vous permet d'installer des dépendances sur le système parent en spécifiant l'indicateur --system :


 $ pipenv install --system 

Ceci est utile lors du déploiement d'applications sur Docker.


Si vous spécifiez l'indicateur --deploy , pipenv générera une erreur si Pipfile.lock est obsolète ou si la version Python ne correspond pas à celle spécifiée.


Exemple de Dockerfile pour travailler avec 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 exemple d'application Flask utilisant les fonctionnalités de Pipenv : github.com/fdhadzh/flask-pipenv-example .

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


All Articles