Christian Batista

Poetry, uma alternativa ao pip python.

22 Aug 2024

Dummy Image 1

O Poetry é uma ferramenta moderna para o gerenciamento de pacotes e ambientes em Python, que visa simplificar o fluxo de trabalho de desenvolvimento. Este tutorial fornecerá uma visão abrangente do uso do Poetry, cobrindo desde a instalação até a migração de projetos existentes usando pip.

Instalando o Poetry

A instalação do Poetry é simples e pode ser feita com um único comando:

curl -sSL https://install.python-poetry.org | python3 -

Após a instalação, adicione o Poetry ao seu PATH (se necessário) e verifique se ele foi instalado corretamente:

poetry --version

Configurando o Poetry

Depois de instalar, é possível configurar algumas opções, como o local onde os ambientes virtuais serão criados. Para verificar as configurações padrão, execute:

poetry config --list

Para mudar o local dos ambientes virtuais para o diretório do projeto:

poetry config virtualenvs.in-project true

Iniciando um Projeto com Poetry

Para iniciar um novo projeto, utilize o comando:

poetry new my-project

Isso criará uma nova estrutura de diretório com arquivos como pyproject.toml e README.md.

Se você já tem um projeto Python, pode iniciar o Poetry nele:

cd my-existing-project
poetry init

O comando interativo poetry init permite adicionar as dependências já utilizadas no seu projeto ao pyproject.toml.

Instalando Pacotes

Para instalar pacotes, use o comando poetry add:

poetry add requests

Para instalar uma versão específica de um pacote:

poetry add requests@2.25.1

O Poetry cria um arquivo poetry.lock para garantir que todos os desenvolvedores usem as mesmas versões de pacotes. Para instalar as dependências com base no poetry.lock, use:

poetry install

O arquivo pyproject.toml é o coração de um projeto gerenciado pelo Poetry. Ele contém as configurações do projeto, incluindo dependências, versão do Python, scripts, entre outros.

Aqui está um exemplo de como adicionar um script customizado:

[tool.poetry.scripts]
myscript = "mypackage.module:main_function"

Para adicionar dependências de desenvolvimento:

poetry add --dev pytest

Como Usar Diferentes Versões do Python

Se você precisar usar uma versão específica do Python, especifique no pyproject.toml:

[tool.poetry.dependencies]
python = "^3.9"

Para alternar entre versões do Python, é possível usar o pyenv ou outra ferramenta de gerenciamento de versões. Ou com o gerenciador de pacotes do seu GNU/Linux.

Gerenciando Ambientes Virtuais

Listando ambientes virtuais

poetry env list

outup:

test-O3eWbxRl-py3.6
test-O3eWbxRl-py3.7 (Activated)

escolhendo versão:

poetry env use test-O3eWbxRl-py3.6

Excutando dentro do ambiente virtual:

poetry run

exemplo, como excutar jupyter notebook ou jupyter lab

poetry new mynotebook
cd mynotebook
poetry add jupyter ou poetry add jupyterlab
poetry run jupyter notebook ou poetry run jupyter lab

Gerenciando Ambientes Virtuais com poetry shell

O Poetry gerencia ambientes virtuais automaticamente, mas você pode ativar o ambiente manualmente com:

poetry shell

Para sair do ambiente:

exit

Migrando de pip para Poetry

Se você já tem um projeto que usa pip e requirements.txt, migrar para Poetry é simples:

poetry init
poetry add $(cat requirements.txt)

ou

cat requirements.txt | grep -E '^[^# ]' | cut -d= -f1 | xargs -n 1 poetry add

Isso converterá as dependências do requirements.txt para o formato pyproject.toml do Poetry. O Poetry é uma ferramenta poderosa que simplifica o desenvolvimento e gerenciamento de projetos Python. Com suas funcionalidades para instalação de pacotes, gerenciamento de dependências, configuração de ambientes e suporte a múltiplas versões do Python, ele é uma excelente escolha tanto para novos projetos quanto para migração de projetos existentes.