Skip to content
Latchkey

pip-tools vs Poetry: Qual workflow de dependências Python para CI?

O pip-tools adiciona um lockfile ao workflow simples de pip/requirements; o Poetry é um gerenciador completo de projeto, dependências e packaging.

O pip-tools (pip-compile/pip-sync) sobrepõe requirements reproduzíveis e fixados ao workflow padrão do pip com mudança mínima. O Poetry é uma ferramenta all-in-one que gerencia dependências, um lockfile, virtualenvs e packaging a partir do pyproject.toml.

pip-toolsPoetry
EscopoLockfile sobre requirementsDeps + venv + packaging
Lockfilerequirements.txt (compilado)poetry.lock
Configrequirements.in / pyprojectpyproject.toml
Packaging/publishSeparado (build/twine)Integrado
Curva de aprendizadoBaixa (próxima do pip)Maior (workflow próprio)

No CI

O pip-tools mantém você no caminho familiar de pip/requirements enquanto adiciona um lockfile compilado e fixado - baixo atrito para times que querem reprodutibilidade sem trocar de ferramenta. O Poetry substitui todo o workflow com resolução de dependências, virtualenvs e packaging em uma ferramenta, o que é conveniente para bibliotecas e apps que você publica. Ambos entregam instalações determinísticas no CI quando você instala a partir do lock.

Faça cache

Faça cache da cache de wheel/download chaveada nos requirements compilados ou no poetry.lock, e use pip-sync ou poetry install --no-root para instalações limpas. As instalações rodam nos runners de CI; se elas dominam o tempo do job, runners gerenciados mais rápidos ajudam mais.

O veredito

Quer reprodutibilidade mantendo-se próximo do pip simples: pip-tools. Quer uma ferramenta para dependências, venvs e packaging: Poetry. Commite o lockfile e instale a partir dele de forma determinística em qualquer um.

Guias relacionados