Skip to content
Latchkey

O Que É o Poetry? Dependências e Empacotamento em Python Explicados

O Poetry é uma ferramenta Python que gerencia dependências, ambientes virtuais e empacotamento a partir de um único pyproject.toml, com um lockfile para installs reproduzíveis.

O Poetry traz para o Python o fluxo de trabalho tudo-em-um e orientado por lockfile que desenvolvedores JavaScript e Rust apreciam. Em vez de fazer malabarismo com arquivos de requisitos, setup.py e uma ferramenta de virtualenv separada, você descreve tudo no pyproject.toml e deixa o Poetry resolver, travar, instalar e publicar.

O que é o Poetry

O Poetry é um gerenciador de dependências e ferramenta de build para projetos Python. Ele lê e grava o pyproject.toml padrão, resolve um grafo de dependências completo e registra as versões exatas no poetry.lock. Ele também cria e gerencia automaticamente um ambiente virtual para o projeto.

Como funciona

Você declara dependências com "poetry add", e o Poetry resolve versões compatíveis e as grava no poetry.lock. O "poetry install" então instala exatamente o que o lockfile especifica em um ambiente virtual gerenciado. Como o lockfile captura o grafo resolvido completo, toda máquina e todo runner de CI obtêm um ambiente idêntico.

Um exemplo de uso

O fluxo comum é add, install, run.

Typical Poetry commands
# add a dependency (updates pyproject.toml and poetry.lock)
poetry add requests

# install exactly from the lockfile
poetry install --no-interaction

# run a command inside the managed venv
poetry run pytest

Papel no CI/CD

No CI, "poetry install --no-interaction" reproduz o ambiente travado, e "poetry run" executa testes ou builds dentro dele. Fazer cache dos virtualenvs do Poetry ou de seu diretório de cache entre execuções evita re-resolver e rebaixar. O lockfile torna os builds de CI determinísticos, que é a principal razão pela qual os times adotam o Poetry em vez de arquivos de requisitos soltos.

Alternativas

O pip com um arquivo de requisitos fixado é a linha de base mínima. O PDM é um gerenciador semelhante baseado em padrões. O uv é um recém-chegado rápido que pode resolver, travar e instalar. O Poetry se destaca por seu fluxo de trabalho maduro e integrado, cobrindo dependências, ambientes e publicação.

Principais conclusões

  • O Poetry gerencia dependências, ambientes e empacotamento a partir do pyproject.toml.
  • O poetry.lock fixa o grafo resolvido completo para installs reproduzíveis.
  • Use "poetry install --no-interaction" no CI e faça cache do virtualenv.

Guias relacionados