uv - Novo Gerenciador de Pacotes, Projetos e Ambientes em Python
Vantagens do Python uv
Python uv (pronunciado “you-vee”) é um moderno e de alto desempenho gerenciador de pacotes e projetos Python escrito em Rust. Foi projetado como uma alternativa de substituição direta para ferramentas tradicionais de gerenciamento de pacotes Python, como pip, pip-tools, virtualenv, pipx e pyenv, visando simplificar e acelerar os fluxos de trabalho de desenvolvimento Python.
O uv é desenvolvido pela Astral, a equipe por trás do popular linter Python Ruff, e é projetado para resolver pontos comuns de dor no ecossistema Python — como instalações lentas, conflitos de dependências e gestão complexa de ambientes — aproveitando o desempenho do Rust e uma arquitetura de software moderna.

Principais Funcionalidades do uv
- Velocidade Excepcional: O uv é significativamente mais rápido que as ferramentas tradicionais — tipicamente 8–10x mais rápido que o pip sem cache, e até 80–115x mais rápido com cache quente.
- Ferramenta Tudo em Um: Combina instalação de pacotes, resolução de dependências, gerenciamento de ambientes virtuais, gerenciamento de versões do Python, criação de estrutura de projeto e execução de scripts em uma única ferramenta.
- Compatibilidade: Oferece uma interface de linha de comando compatível com o pip, tornando-a fácil de adotar sem uma curva de aprendizado íngreme.
- Gestão Robusta de Dependências: Fornece resolução precisa de dependências e suporte a arquivo de bloqueio (lockfile) para ambientes reproduzíveis.
- Ambientes Virtuais Automáticos: Cria e gerencia ambientes virtuais automaticamente, reduzindo a configuração manual.
- Suporte Multiplataforma: Funciona em macOS, Linux e Windows.
- Instalação Independente: Pode ser instalado sem exigir Python ou Rust, usando um instalador simples ou
curl.

Ainda não está seguro sobre por que usar o uv?
- Desempenho: Reduz drasticamente os tempos de instalação de pacotes e resolução de dependências.
- Simplicidade: Une múltiplas ferramentas em uma, simplificando a configuração e o gerenciamento de projetos.
- Confiabilidade: Entrega ambientes consistentes e reproduzíveis, com mensagens de erro claras e resolução de conflitos.
- Padrões Modernos: Suporta
pyproject.tomlpara configuração de projeto, alinhando-se com os padrões atuais de empacotamento Python.
Exemplos de Casos de Uso
Vamos tentar algo emocionante!
- Iniciando um Novo Projeto:
uv init myproject
cd myproject
uv add requests
uv run python script.py
Isso cria um diretório de projeto, configura um ambiente virtual, instala dependências e executa scripts em um ambiente isolado.
- Gerenciando Scripts com Dependências Inline:
uv add --script script.py requests
uv run script.py
O uv pode gerenciar dependências para scripts de arquivo único sem arquivos de requisitos separados.
Comparação com Ferramentas Tradicionais
| Funcionalidade | uv | pip/virtualenv | Poetry |
|---|---|---|---|
| Velocidade | Muito rápida | Lenta | Moderada |
| Ambientes Virtuais | Automático | Manual | Automático |
| Resolução de Dependências | Avançada | Básica | Avançada |
| Gestão de Versão do Python | Sim | Não (requer pyenv) | Não |
| Suporte a Lockfile | Sim | Não (requer pip-tools) | Sim |
| Execução de Scripts | Integrada | Não | Limitada |
Como posso instalar e começar a usar o UV no meu sistema
Para instalar e começar a usar o uv no seu sistema, siga estas etapas diretas:
Instalação
- Instalador Independente (Recomendado)
- Linux/macOS:
curl -LsSf https://astral.sh/uv/install.sh | sh
Ou, se preferir wget:
wget -qO- https://astral.sh/uv/install.sh | sh
- Windows (PowerShell):
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
- Versão Específica: Você pode solicitar uma versão específica incluindo-a na URL, por exemplo,
https://astral.sh/uv/0.7.15/install.sh.
- Alternativa: Instalar via pip (se você tem Python instalado)
pip install uv
Nota: Este método é menos recomendado para acesso em todo o sistema, a menos que você saiba o que está fazendo, pois pode poluir o ambiente Python do seu sistema.
- Instalar via pipx (para instalação isolada, em todo o usuário)
pipx install uv
Este método é mais limpo para acesso global se você já usa pipx.
Primeiros Passos
Para Verificar a Instalação - Execute:
uv
Você deve ver um menu de ajuda confirmando que o uv está instalado e pronto.
Para Criar e Ativar um Ambiente Virtual
- Criar um venv:
uv venv test
- Ativá-lo no Linux/macOS:
source test/bin/activate
- Ativá-lo no Windows:
.\test\Scripts\activate
Agora você pode usar uv pip install para instalar pacotes neste ambiente.
Inicializar um Novo Projeto
uv init
Isso cria um pyproject.toml e um .gitignore para o seu projeto.
Adicionar Dependências
Adicionar um pacote:
uv add
Isso atualiza o pyproject.toml e gera/atualiza o arquivo de bloqueio (lockfile).
Sincronizar Dependências
Instalar todas as dependências no seu ambiente:
uv sync
Ou, use a interface compatível com o pip:
uv pip install
Isso garante que todas as dependências sejam instaladas de acordo com o seu arquivo de bloqueio (lockfile).
Executar Scripts
Use:
uv run script.py
Isso gerencia automaticamente o ambiente e as dependências para o seu script.
Integração com Shell (Opcional)
Para um fluxo de trabalho mais suave, você pode adicionar a integração com o shell ao seu .zshrc ou .bashrc para ativar automaticamente um ambiente virtual padrão e criar um alias de pip para uv pip.
Com estas etapas, você terá o uv instalado e estará pronto para gerenciar seus projetos Python com velocidade e facilidade.
Instalando Versões Específicas do Python
Você pode usar o uv para instalar versões específicas do Python e gerenciá-las para seus projetos.
- Instalar a última versão estável do Python:
Este comando baixa e instala a versão estável mais recente do Python disponível.uv python install - Instalar uma versão específica:
Isso instala o último lançamento de patch do Python 3.12 (ex.: 3.12.3).uv python install 3.12 - Instalar uma versão exata de patch:
Isso instala exatamente o Python 3.12.3.uv python install 3.12.3 - Instalar múltiplas versões:
Isso instala o Python 3.9, 3.10 e 3.11.uv python install 3.9 3.10 3.11 - Instalar uma versão que corresponda a uma restrição:
Isso altera o requisito da versão do Python do projeto.uv python install '>=3.8,=3.11"
Observações Adicionais
Downloads Automáticos: Por padrão, o uv baixará e instalará automaticamente as versões do Python necessárias, caso não sejam encontradas no seu sistema.
Python do Sistema: O uv pode usar instalações existentes do Python, se presentes, ou você pode forçá-lo a usar o Python do sistema com a flag --no-managed-python.
Atualizações: Você pode atualizar as versões do Python gerenciadas pelo uv para o lançamento de patch mais recente com:
uv python upgrade 3.12
Ou atualizar todas as versões instaladas:
uv python upgrade
Atualizações entre versões menores (ex.: de 3.12 para 3.13) não são suportadas.
Em resumo, o uv fornece ferramentas flexíveis e poderosas para instalar, gerenciar e usar versões específicas do Python em seus projetos.
Como o UV descobre os interpretadores Python disponíveis em diferentes sistemas
O UV descobre os interpretadores Python disponíveis em diferentes sistemas verificando um conjunto de localizações bem definidas e consultando cada candidato por seus metadados de versão. Aqui está como funciona:
- Instalações de Python Gerenciadas:
O UV primeiro procura no diretório especificado pela variável de ambienteUV_PYTHON_INSTALL_DIR, onde armazena suas versões gerenciadas de Python. - SISTEMA PATH:
No macOS e Linux, o UV verifica executáveis nomeadospython,python3oupython3.x(ondexé um número de versão) nos diretórios listados noPATHdo sistema. No Windows, ele procura porpython.exe. - Localizações Específicas do Windows:
No Windows, o UV também verifica o registro do Windows e os interpretadores do Python da Microsoft Store usando a saída dopy --list-paths. - Ambientes Virtuais:
Se um ambiente virtual estiver ativo ou especificado, o UV verifica o interpretador naquele ambiente em busca de compatibilidade antes de procurar em outros lugares. - Consulta de Metadados:
Cada executável descoberto é consultado por seus metadados de versão. Somente executáveis que corresponderem à versão solicitada (ou restrição de versão) são considerados. Arquivos não executáveis são ignorados. - Preferência e Fallback:
Por padrão, o UV prefere instalações de Python do sistema, mas você pode ajustar isso com opções para preferir versões gerenciadas ou usar apenas versões gerenciadas/do sistema. Se nenhum interpretador adequado for encontrado, o UV pode baixar e instalar a versão necessária.
Este processo de descoberta robusto garante que o UV possa localizar e usar o interpretador Python correto de forma confiável em diferentes sistemas operacionais e ambientes.
Links Úteis
- Página inicial do uv: https://docs.astral.sh/uv/
- Pacote uv: https://pypi.org/project/uv/
- github do uv: https://github.com/astral-sh/uv/
- Folha de dicas Python
- Folha de dicas Conda
- Folha de dicas venv
- Folha de dicas Bash
- Folha de dicas venv
- Popularidade de linguagens de programação e frameworks
- Hub de Ferramentas de Desenvolvimento — folhas de dicas, ferramentas de linha de comando e fluxos de trabalho de desenvolvimento