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:
pip e virtualenv
$ virtualenv venv $ source venv/bin/activte $ pip install Flask gunicorn $ pip freeze > requirements.txt
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
Um exemplo de aplicativo Flask usando os recursos do Pipenv : github.com/fdhadzh/flask-pipenv-example