Gerenciamento de ambiente Python com Pipenv

Oi meu amigo


Assumirei que pip e virtualenv ainda são usados ​​para controlar o ambiente Python em seu projeto.


Nesse caso, deixe-me falar sobre uma ferramenta como o Pipenv.


O Pipenv é uma ferramenta moderna para gerenciar o ambiente de trabalho em Python.


Principais recursos do pipenv:


  • Criando e gerenciando um ambiente virtual
  • Sincronização de pacotes Pipfile durante a instalação e remoção do pacote
  • Carregamento automático de variáveis ​​de ambiente de um arquivo .env

Como um bom exemplo, compare usando pip e virtualenv com pipenv para criar um ambiente virtual:


  1. pip e virtualenv


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

  2. pipenv


     $ pipenv install Flask gunicorn 


Introdução


Instale a versão mais recente do pipenv:


 $ pip install pipenv 

Gerenciamento do ambiente de trabalho


Vamos para o diretório com o projeto Python e criar um ambiente virtual especificando a versão do intérprete:


 $ cd yourproject $ pipenv --python 3.7 

A equipe criará automaticamente um novo ambiente virtual para o seu projeto, se ele ainda não existir.


Você pode ativar o ambiente virtual do projeto executando o comando shell :


 $ pipenv shell 

Para sair do shell do ambiente virtual, use o exit :


 $ exit 

Gerenciamento de Dependências de Aplicativos


Para instalar pacotes, use o comando install :


 $ pipenv install Flask 

O Pipenv instalará a versão mais recente do pacote Flask e a adicionará automaticamente ao Pipfile.


Durante a instalação, podemos especificar uma versão específica do pacote:


 $ pipenv install Flask==1.0.2 

Os desenvolvedores dessa ferramenta também cuidaram do trabalho com o ambiente de desenvolvimento - os pacotes necessários no estágio de montagem ou teste de aplicativos.


Se você especificar o sinalizador --dev , o pacote será instalado como parte do ambiente de desenvolvimento:


 $ pipenv install pytest --dev 

Para instalar todos os pacotes, incluindo pacotes do ambiente de desenvolvimento, você deve executar:


 $ pipenv install --dev 

Para desinstalar pacotes, existe um comando de uninstall :


 $ pipenv uninstall Flask 

As informações sobre os pacotes instalados e suas dependências são armazenadas no arquivo Pipfile.lock, gerado automaticamente e não deve ser alterado pelo usuário.


Executando código fonte


É possível executar o código-fonte dentro do shell virtualenv:


 $ pipenv run python yourapplication.py 

Se houver um arquivo .env, os $ pipenv shell e $ pipenv run carregarão automaticamente variáveis ​​de ambiente a partir dele:


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

Implantação de aplicativo


O Pipenv permite instalar dependências no sistema pai especificando o sinalizador --system :


 $ pipenv install --system 

Isso é útil ao implantar aplicativos no Docker.


Se você especificar o sinalizador --deploy, o pipenv emitirá um erro se o Pipfile.lock estiver obsoleto ou a versão do Python não corresponder ao especificado.


Exemplo de Dockerfile para trabalhar com 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 . . 

Um exemplo de aplicativo Flask usando os recursos do Pipenv : github.com/fdhadzh/flask-pipenv-example

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


All Articles