PipEnv e Virtual Enviroment
Criação de ambiente virtual para isolar dependências em Python
Para facilitar o controle de dependências de uma projeto Python podemos isolar um ambiente para executar com um versão controlada do Python e dos seus pacotes
Com um Ambiente Python preparado podemos instalar o pacote do pipenv, nosso gestor de ambientes virtuais, com ele podemos:
- Controlar os pacotes
- Isolar para execução
- Saber as dependências do projeto
- Facilitar a duplicação do ambiente para produção e desenvolvimento
Instalando pelo pip do repositório do PyPi
pip install pipenv
Gerenciar Ambiente Virtual
Para criar um ambiente virtual, usando a versão instalada e configurada como padrão do Python
pipenv install
Ou podemos definir uma versão com a diretiva --python
pipenv --python 3.6
Após a instalação podemos entrar no ambiente virtual
pipenv shell
Assim podemos instalar um pacote de maneira muito semelhante ao pip
pipenv install <nome do pacote>
Com o comando anterior o sistema cria no arquivo Pipfile na pasta atual, o arquivo contém todas as configurações do ambiente como versão do Python e pacotes instalados nele
Podemos "congelar" as versões dos pacotes
pipenv lock
Gerando o arquivo Pipfile.lock com as versões dos pacotes
Para instalar um ambiente apartir de um já configurado basta executar novamente o comando em uma pasta com os Pipfile e o Pipfile.lock
No exemplo a seguir vamos usar o pacote flask, que mesmo instalado no ambiente da máquina, precisa estar no Virtual, ou somente no virtual
pipenv install flask
Programa
Com biblioteca do Flask instalada, basta criar um arquivo app.py desta maneira
import os
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Aeeee!!! Funciona'
if __name__ == '__main__':
port = int(os.environ.get("PORT", 5000))
app.run(host='0.0.0.0', port=port)
Execução
Para executar a aplicação em ambiente virtual, podemos executar a chamada flask run
pelo shell
pipenv shell
Ou executar direto para execução da aplicação
pipenv run python app.py