uv - Novo Gerenciador de Pacotes, Projetos e Ambientes em Python

Vantagens do Python uv

Conteúdo da página

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.

uv python ultra-violet spa

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.

uv vs poetry vs pdm vs pip performance comparison

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.toml para 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

  1. 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.
  1. 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.

  1. 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:
    uv python install
    
    Este comando baixa e instala a versão estável mais recente do Python disponível.
  • Instalar uma versão específica:
    uv python install 3.12
    
    Isso instala o último lançamento de patch do Python 3.12 (ex.: 3.12.3).
  • Instalar uma versão exata de patch:
    uv python install 3.12.3
    
    Isso instala exatamente o Python 3.12.3.
  • Instalar múltiplas versões:
    uv python install 3.9 3.10 3.11
    
    Isso instala o Python 3.9, 3.10 e 3.11.
  • Instalar uma versão que corresponda a uma restrição:
    uv python install '>=3.8,=3.11"
    
    Isso altera o requisito da versão do Python do projeto.

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 ambiente UV_PYTHON_INSTALL_DIR, onde armazena suas versões gerenciadas de Python.
  • SISTEMA PATH:
    No macOS e Linux, o UV verifica executáveis nomeados python, python3 ou python3.x (onde x é um número de versão) nos diretórios listados no PATH do sistema. No Windows, ele procura por python.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 do py --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.

Subscrever

Receba novos artigos sobre sistemas, infraestrutura e engenharia de IA.