Já usa o Poetry em seus projetos python? Vamos falar um pouco sobre e como achamos que ele pode ser um forte aliado para você gerenciar seus pacotes e ambientes virtuais em python, mas antes vamos a uma breve explicação do que ele é e onde ele se encaixa.
O que é o Poetry?
Poetry é um gerenciador de pacotes para projetos python, ele pode ser usado para instalar, atualizar e remover dependências, bem como gerenciar ambientes virtuais venv. Ele se encontra no github e foi criado em 2018. Você pode usar tanto o Python Package Index, Pypi, quanto o repositório privado.
Como instalar o Poetry
Para nosso tutorial vamos fazer um exemplo que funciona em Linux, macOS e Windows (WSL). Para Windows puro separamos um link no final do artigo. Antes de iniciar devemos garantir a versão que o alias python está apontando, para isso rode isso no seu terminal:
python --version
BashSe esse comando retornar um erro por exemplo: Command ‘python’ not found, did you mean ou que a versão é python 2, devemos ou criar um alias para que python responda por python3 ou apenas seguir o tutorial usando python3 em vez de python.
Agora seguindo a instalação:
curl -sSL https://install.python-poetry.org | python3 -
BashNo final da instalação você deverá ver uma tela similar:
Com isso podemos rodar o seguinte comando para adicionar em nosso path e na sequência verificar a versão instalada:
export PATH="/home/danilodorgam/.local/bin:$PATH"
poetry --version
BashCriando um projeto com Poetry
Para nosso exemplo vamos criar um exemplo usando o próprio poetry que já cria um projeto exemplo com o seguinte comando:
poetry new projeto-exemplo
BashOu caso você já tinha um projeto pré-existente poderá apenas iniciar ele desta forma:
cd projeto-exemplo
poetry init
BashNeste tutorial vamos seguir o primeiro caminho e após rodar esse comando vamos ter essa estrutura:
Explicando a estrutura acima vamos ter os seguintes arquivos:
- poetry.lock: Ele é responsável por garantir a reprodutibilidade das dependências instaladas em um ambiente virtual específico.
- pyproject.toml: Ele contém todas as informações do seu projeto como por exemplo licença, dependências, e scripts de build, run e afins da sua aplicação.
Criando Ambientes virtuais
Para ambientes virtuais venv podemos definir a versão do python e é o que vamos fazer, usando a versão 3.7 do Python, no seu caso use a versão disponível no sistema.
poetry env use python3.7
BashComo podem ver por padrão é criado o .venv na raiz do projeto, porém podemos customizar esse diretório para outro lugar. Recomendamos essa página da documentação.
Agora com o Virtualenv podemos alternar o shell para usar ele e podemos fazer isso de duas formas:
poetry shell
source /home/danilodorgam/projetos/projeto-exemplo/.venv/bin/activate
BashTambém podemos listar todos nossos venvs e até remover se assim necessário veja como:
poetry env list --full-path #listagem das envs
poetry env remove /home/danilodorgam/projetos/projeto-exemplo/.venv #com base em um path de uma env remove ela
poetry env remove --all #remove todas as envs
BashConclusão
Já conhecia? Entre ele e o Pip prefere qual? Deixe abaixo nos comentários o que acha dessa ferramenta e se quiser complementar o artigo também.