uv vs Poetry: gerenciamento de projetos Python comparado
Ambos gerenciam um projeto, resolvem dependências e escrevem um lockfile; o uv é mais rápido e mais novo, o Poetry é o padrão maduro e amplamente documentado.
O uv e o Poetry vão além de instalações brutas: eles modelam um projeto, travam todo o grafo de dependências e gerenciam ambientes virtuais. O uv (Rust) otimiza para velocidade; o Poetry tem anos de adoção, plugins e familiaridade de ecossistema.
| uv | Poetry | |
|---|---|---|
| Linguagem | Rust | Python |
| Lockfile | uv.lock | poetry.lock |
| Velocidade de resolução/instalação | Muito rápido | Mais lento, especialmente em grafos grandes |
| Empacotamento/publicação | uv build / uv publish | poetry build / poetry publish |
| Maturidade & docs | Mais novo, evoluindo rápido | Maduro, ecossistema amplo |
Onde o uv ganha
Em grafos de dependências grandes o uv resolve e instala muito mais rápido, o que se acumula a cada run de CI. Uma única ferramenta cobre instalar, travar, executar e buildar. O fluxo baseado em pyproject é familiar para usuários de Poetry, facilitando a migração.
Onde o Poetry ganha
O Poetry tem anos de uso em produção, documentação extensa, um ecossistema de plugins e comportamento previsível que muitos times já padronizam. Se seu time, suas ferramentas ou seus templates de CI pressupõem Poetry, a troca pode não valer o esforço. O comportamento do resolvedor do Poetry é bem compreendido e testado em campo.
Em CI
Faça commit do lockfile (uv.lock ou poetry.lock) e faça cache pelo seu hash. uv sync e poetry install --no-root ambos dão instalações determinísticas. A principal diferença prática que você sentirá nos pipelines é o tempo de instalação em relógio de parede.
O veredito
Escolha o uv por velocidade e um único toolchain rápido, especialmente em projetos grandes ou pipelines movimentados; fique com o Poetry quando sua maturidade, ecossistema e suas convenções existentes superarem o ganho de velocidade. Ambos produzem builds reproduzíveis e guiados por lockfile.