Se você já usou o pip para instalar pacotes Python, sabe que às vezes a velocidade pode ser um problema — principalmente em projetos maiores. O uv chegou para resolver isso.
Neste artigo, vou te mostrar o que é o uv, por que ele está ganhando tanta atenção na comunidade Python e como você pode usá-lo para acelerar o gerenciamento de pacotes no seu projeto.
O que é o uv****?
O uv é um instalador de pacotes para Python, escrito em Rust, criado pela equipe da Astral (a mesma que desenvolve o rye). Ele promete instalações até 100x mais rápidas que o pip, usando resolução paralela e otimizações modernas.
Além disso, o uv substitui ferramentas como:
pip(instalação de pacotes)venvouvirtualenv(ambientes virtuais)pip-tools(geração de arquivosrequirements.lock)pip-sync(sincronização de dependências)
Por que usar o uv****?
A adoção do uv está crescendo porque ele resolve problemas reais do ecossistema Python. Veja alguns exemplos:
Problemas com pip:
- Instalações lentas
- Ambiente virtual separado
- Difícil manter dependências travadas corretamente
Soluções com uv:
- Instalação ultra rápida
- Ambiente integrado com o gerenciador de pacotes
- Geração automática de arquivos
.lockpara reprodutibilidade
E o melhor: ele é totalmente compatível com o PyPI. Ou seja, você continua usando os pacotes que já conhece.
Como instalar o uv
Você pode instalar o uv de forma simples:
- Usando o script oficial:
curl -Ls https://astral.sh/uv/install.sh | bash
Comandos básicos do uv
Criar um ambiente virtual:
uv venv
Rodar comandos no ambiente:
uv run python script.py
Instalar pacotes:
uv pip install requests
Instalar a partir de um requirements.txt:
uv pip install -r requirements.txt
Gerar um lockfile com versões fixas:
uv pip compile
Sincronizar o ambiente com o lockfile:
uv pip sync
Exemplo prático
Criando um projeto com Flask:
mkdir meu-projeto cd meu-projeto uv venv uv pip install flask uv run python -m flask --version
Em segundos, você já tem o ambiente pronto e funcionando.
Como o uv resolve o controle de versões das dependências
Um dos maiores desafios no Python é garantir que as mesmas versões de pacotes sejam usadas em diferentes ambientes (dev, CI, produção). O uv resolve isso com:
-
Lockfiles (
requirements.lock)O comando
uv pip compilegera um arquivo com versões travadas de todos os pacotes (e suas subdependências). Isso garante reprodutibilidade. -
Sincronização com
uv pip syncEsse comando garante que o ambiente só tenha exatamente os pacotes e versões definidos no
.lock. Ele remove dependências a mais e evita erros por divergência de ambiente. -
Compatibilidade com
requirements.txtVocê pode transformar seu
requirements.txtem um lockfile com:uv pip compile -r requirements.txt
Conclusão
O uv representa um grande passo na evolução do gerenciamento de pacotes em Python. Ele é rápido, moderno, confiável e resolve problemas reais de quem trabalha com projetos Python todos os dias.
Se você busca mais performance, controle de versões e simplicidade, o uv merece um lugar no seu fluxo de desenvolvimento.