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:
pip et virtualenv
$ virtualenv venv $ source venv/bin/activte $ pip install Flask gunicorn $ pip freeze > requirements.txt
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
Un exemple d'application Flask utilisant les fonctionnalités de Pipenv : github.com/fdhadzh/flask-pipenv-example .