Skip to content
Latchkey

O Que É o uv? O Gerenciador Rápido de Pacotes e Projetos Python

O uv é um gerenciador rápido de pacotes e projetos Python baseado em Rust que pode substituir o pip, o virtualenv e o pip-tools com uma única ferramenta muito mais veloz.

O uv é uma ferramenta mais nova dos criadores do Ruff que busca ser um substituto rápido e drop-in para boa parte da stack de empacotamento do Python. Ele instala e resolve dependências dramaticamente mais rápido que o pip, gerencia ambientes virtuais e pode travar e executar projetos, tudo a partir de um único binário.

O que é o uv

O uv é um instalador, resolver e gerenciador de projetos Python escrito em Rust. Ele fala os formatos padrão (requirements.txt, pyproject.toml) e expõe uma interface compatível com o pip, então os fluxos de trabalho existentes em sua maioria continuam funcionando enquanto rodam muito mais rápido, graças a um resolver paralelo e a um caching agressivo.

Como funciona

O uv resolve dependências com um resolver rápido no estilo SAT e instala a partir de um cache global, fazendo hard link dos arquivos nos ambientes para evitar cópia. Ele pode criar ambientes virtuais ("uv venv"), instalar neles ("uv pip install") e gerenciar projetos inteiros com um lockfile ("uv sync"). O cache compartilhado significa que installs repetidos são quase instantâneos.

Um exemplo de uso

O uv espelha o pip de perto, além de comandos de projeto de nível mais alto.

Common uv commands
# create a venv and install fast
uv venv
uv pip install -r requirements.txt

# or manage a project end to end
uv sync
uv run pytest

Papel no CI/CD

O uv brilha no CI porque o install de dependências costuma ser a etapa mais lenta que não é de teste em pipelines Python. Sua velocidade e seu design amigável a cache reduzem substancialmente os tempos de install, e um cache do uv persistente entre execuções acumula a economia. Em runners gerenciados do Latchkey, um cache do uv aquecido mais o auto-retry em soluços transitórios do PyPI mantêm essas etapas de install rápidas e confiáveis.

Alternativas

O pip é o padrão, mas mais lento; o pip-tools adiciona travamento; o Poetry e o PDM oferecem gerenciamento de projeto integrado. O uv compete sendo muito mais rápido enquanto permanece amplamente compatível, e pode assumir os papéis de várias dessas ferramentas de uma só vez.

Principais conclusões

  • O uv é um substituto rápido baseado em Rust para o pip, o virtualenv e o pip-tools.
  • Um cache compartilhado e um resolver paralelo tornam os installs muito mais rápidos.
  • No CI, o uv mais um cache persistente reduz a etapa de install do Python, muitas vezes lenta.

Guias relacionados