Se você ainda usa pip + venv + pip-tools (ou Poetry) e sente que seu fluxo em Python ficou pesado demais, está na hora de conhecer o uv.
O uv é uma ferramenta da Astral (a mesma empresa por trás do Ruff) para:
- gerenciar dependências
- criar e sincronizar ambientes virtuais
- travar versões com lockfile
- executar scripts e comandos com isolamento
- gerenciar projetos Python com uma experiência moderna
A promessa é simples: ser drasticamente mais rápido sem sacrificar a reprodutibilidade.
Por que o uv chamou tanta atenção?
A maioria das dores no ecossistema Python vem de um mesmo ponto: gerenciamento de dependências lento, confuso e inconsistente entre máquinas.
O uv resolve isso com alguns pilares:
- Performance muito alta (resolver e instalar pacotes em segundos)
- Fluxo unificado: uma ferramenta para projeto, ambiente e lockfile
- Compatibilidade com ecossistema Python existente
- Experiência de uso direta, com comandos previsíveis
Em outras palavras: menos tempo esperando instalações, mais tempo escrevendo código.
Comparação de velocidade (dados oficiais)
Segundo a documentação oficial do uv, a ferramenta pode ser 10-100x mais rápida que o pip em fluxos compatíveis:
- Highlights: https://docs.astral.sh/uv/#highlights
- Pip interface: https://docs.astral.sh/uv/#the-pip-interface
Nos exemplos da própria página inicial, os tempos aparecem em milissegundos para operações comuns de projeto, como resolução e sincronização:
|
|
Fonte: https://docs.astral.sh/uv/#projects
Para benchmarks detalhados (warm/cold install e warm/cold resolution), a equipe do uv publica a metodologia, os caveats e as comparações com outras ferramentas em:
- https://docs.astral.sh/uv/reference/benchmarks/
- https://github.com/astral-sh/uv/blob/main/BENCHMARKS.md
Importante: os resultados variam conforme sistema operacional, filesystem e conjunto de dependências do projeto.
UV Projects na prática
A seção Projects da documentação oficial mostra o fluxo completo:
https://docs.astral.sh/uv/#projects
Com uv, você pode iniciar um projeto e manter tudo consistente desde o primeiro commit.
1. Criar projeto
|
|
Isso cria a base do projeto Python com metadados e estrutura inicial.
2. Adicionar dependências
|
|
Sem malabarismo: as dependências de runtime e desenvolvimento ficam organizadas no projeto.
3. Gerar/sincronizar ambiente
|
|
O uv cria ou atualiza o ambiente para refletir exatamente o estado declarado.
4. Executar comandos no ambiente do projeto
|
|
Você não precisa alternar manualmente entre ambientes.
Lockfile e reprodutibilidade
Um dos ganhos mais importantes do uv é o lockfile, que fixa versões para execução consistente entre:
- sua máquina local
- ambiente de CI
- produção
Isso reduz o clássico problema do “funciona no meu computador”.
Na prática, o time inteiro instala as mesmas versões, com menos surpresas em deploy.
UV vs Pip: o que muda no dia a dia?
Comparando com o fluxo tradicional:
pip: instala pacotes, mas não gerencia o projeto de ponta a pontauv: integra dependências + ambiente + execução + lockfile em um fluxo único
Resultado:
- setup inicial mais rápido
- onboarding mais simples para novos devs
- menos scripts auxiliares para manter ambiente em ordem
Quando vale migrar?
Migrar para uv costuma valer muito quando você quer:
- reduzir tempo de setup de projeto
- padronizar ambiente em equipe
- simplificar pipelines de CI
- diminuir a quantidade de ferramentas no stack
Se você está com projeto novo, é ainda mais fácil: comece com uv desde o dia zero.
Conclusão
O uv não é apenas “um pip mais rápido”. Ele aponta para um fluxo em Python mais moderno: menos fricção operacional, mais previsibilidade e mais velocidade.
Se você quer produtividade real no ciclo de desenvolvimento, vale testar hoje no seu próximo projeto.