uv – Novo Gerenciador de Pacotes, Projetos e Ambientes Python
Pontos positivos sobre o Python uv
Python uv (pronúncia “you-vee”) é um gerenciador de pacotes e projetos Python moderno e de alto desempenho, escrito em Rust. Ele foi projetado como uma substituição direta para as tradicionais ferramentas de gerenciamento de pacotes Python, como pip, pip-tools, virtualenv, pipx e pyenv, com o objetivo de 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 foi projetado para abordar pontos de dor comuns no ecossistema Python — como instalações lentas, conflitos de dependências e gerenciamento complexo de ambientes — aproveitando o desempenho do Rust e uma arquitetura de software moderna.

Principais Recursos do uv
- Velocidade Excepcional: o uv é significativamente mais rápido que as ferramentas tradicionais — tipicamente de 8 a 10 vezes mais rápido que o pip sem cache, e até 80 a 115 vezes mais rápido com um 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 projetos e execução de scripts em uma única ferramenta.
- Compatibilidade: Oferece uma interface de linha de comando compatível com o pip, facilitando a adoção sem uma curva de aprendizado íngreme.
- Gerenciamento Robusto de Dependências: Fornece resolução precisa de dependências e suporte a lockfiles 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 o
curl.

Ainda não tem certeza por que usar o uv?
- Desempenho: Reduz drasticamente os tempos de instalação de pacotes e resolução de dependências.
- Simplicidade: Unifica múltiplas ferramentas em uma única, simplificando a configuração e o gerenciamento de projetos.
- Confiabilidade: Fornece ambientes consistentes e reproduzíveis com mensagens de erro claras e resolução de conflitos.
- Padrões Modernos: Suporta
pyproject.tomlpara configuração de projetos, alinhando-se aos padrões atuais de empacotamento Python.
Casos de Uso Exemplo
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 em Linha:
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
| Recurso | uv | pip/virtualenv | Poetry |
|---|---|---|---|
| Velocidade | Muito rápido | Lento | Moderado |
| Ambientes Virtuais | Automático | Manual | Automático |
| Resolução de Dependências | Avançado | Básico | Avançado |
| Gerenciamento de Versão Python | Sim | Não (requer pyenv) | Não |
| Suporte a Lockfile | Sim | Não (requer pip-tools) | Sim |
| Execução de Scripts | Integrado | Não | Limitado |
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 estes passos simples:
Instalação
- Instalador Independente (Recomendado)
- Linux/macOS:
curl -LsSf https://astral.sh/uv/install.sh | sh
Ou, se preferir o 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ê tiver 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 bagunçar o ambiente Python do seu sistema.
- Instalar via pipx (para instalação isolada e de usuário)
pipx install uv
Este método é mais limpo para acesso global se você já usa o 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
- Ativar no Linux/macOS:
source test/bin/activate
- Ativar no Windows:
.\test\Scripts\activate
Agora você pode usar uv pip install para instalar pacotes neste ambiente.
Iniciar 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 lockfile.
Sincronizar Dependências
Instalar todas as dependências no seu ambiente:
uv sync
Ou, use a interface compatível com pip:
uv pip install
Isso garante que todas as dependências sejam instaladas de acordo com o seu 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 do shell ao seu .zshrc ou .bashrc para ativar automaticamente um ambiente virtual padrão e criar um alias de pip para uv pip.
Com estes passos, 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 versão estável mais recente 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 a versão de correção (patch) mais recente do Python 3.12 (por exemplo, 3.12.3).uv python install 3.12 - Instalar uma versão de correção exata:
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 de versão do Python do projeto.uv python install '>=3.8,=3.11"
Notas Adicionais
Downloads Automáticos: Por padrão, o uv baixará e instalará automaticamente as versões do Python necessárias se não forem encontradas no seu sistema.
Python do Sistema: o uv pode usar instalações do Python existentes se estiverem 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 a versão de correção mais recente com:
uv python upgrade 3.12
Ou atualizar todas as versões instaladas:
uv python upgrade
A atualização entre versões menores (por exemplo, de 3.12 para 3.13) não é suportada.
Em resumo, o uv oferece ferramentas flexíveis e poderosas para instalar, gerenciar e usar versões específicas do Python em seus projetos.
Como o UV descobre interpretadores Python disponíveis em diferentes sistemas
O UV descobre interpretadores Python disponíveis em diferentes sistemas verificando um conjunto de locais bem definidos e consultando cada candidato por seus metadados de versão. Veja como funciona:
- Instalações Python Gerenciadas:
O UV procura primeiro no diretório especificado pela variável de ambienteUV_PYTHON_INSTALL_DIR, onde armazena suas próprias versões do Python gerenciadas. - PATH do Sistema:
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. - Locais Específicos do Windows:
No Windows, o UV também verifica o registro do Windows e os interpretadores Python da Microsoft Store usando a saída depy --list-paths. - Ambientes Virtuais:
Se um ambiente virtual estiver ativo ou especificado, o UV verifica o interpretador nesse ambiente para compatibilidade antes de procurar em outro lugar. - Consulta de Metadados:
Cada executável descoberto é consultado por seus metadados de versão. Apenas executáveis que correspondem à 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 do 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 robusto de descoberta garante que o UV possa localizar e usar o interpretador Python correto de forma confiável em diferentes sistemas operacionais e ambientes.