Turbine a instalação de pacotes em Python

O que é uv?

uv é um instalador e resolvedor de pacotes Python turbo-rápido, escrito em Rust como um substituto de alta velocidade para pip, pip-tools e virtualenv.

É de 10 a 100 vezes mais rápido que pip e pip-tools: com um cache aquecido, as instalações com uv são quase instantâneas.

Alguns destaques adicionais:

  • Economiza Espaço em Disco: utiliza um cache global para evitar dependências duplicadas.
  • Funciona em Qualquer Lugar: suporta macOS, Linux e Windows.
  • Fácil de Instalar: você não precisa ter Python ou Rust instalados. Pode ser usado com curl, pip ou brew.
  • Recursos Avançados: suporta substituições de versão de dependências e estratégias alternativas de resolução.
  • Melhores Mensagens de Erro: Mensagens de erro de melhor qualidade com um resolvedor de rastreamento de conflitos.
  • pip Avançado: instalações editáveis, dependências git, dependências locais, distribuições de origem.

Por que é rápido:

  • Rust: Rust é conhecido por sua velocidade e segurança.
  • “resolver”: uma maneira inteligente de determinar quais versões dos pacotes podem funcionar juntas.
  • Cache global de módulos: ele lembra dos arquivos que já viu, então não faz download ou reconstrói dependências novamente.
  • Copy-on-Write e hardlinks: isso ajuda a minimizar o uso de espaço em disco.

A visão maior do uv é transformar o gerenciamento de pacotes Python com sua velocidade e confiabilidade. O próximo Poetry?

Se você está no ecossistema Python há tempo suficiente, sabe como é doloroso configurar um ambiente Python ou criar um pacote.

uv tem planos de estabelecer um “Cargo para Python,” um gerenciador unificado de pacotes e projetos Python que seja extremamente rápido, confiável e fácil de usar.

“Imagine: um único binário que inicializa sua instalação do Python e fornece tudo o que você precisa para ser produtivo com Python, integrando não apenas pip, pip-tools e virtualenv, mas também pipx, tox, poetry, pyenv, ruff e mais.

As ferramentas do Python podem proporcionar uma experiência de baixa confiança: é um trabalho significativo iniciar um novo projeto ou dar continuidade a um projeto existente, e os comandos falham de maneiras confusas. Em contraste, ao trabalhar no ecossistema Rust, você confia que as ferramentas funcionarão. A cadeia de ferramentas Astral tem como objetivo transformar a experiência com Python de uma experiência de baixa confiança para uma de alta confiança.”

Estou empolgado para ver o uv melhorar significativamente a experiência de desenvolvimento em Python!

Benchmarks

Vamos ver alguns números de seus benchmarks

instalação a frio (8–10x mais rápido)

Isso equivale a executar uv pip sync em uma nova máquina uv é 8–10x mais rápido que pip e pip-tools sem cache.

instalação com cache (80–115x mais rápido)

É 80–115x mais rápido ao executar com um cache aquecido (por exemplo, recriando um ambiente virtual ou atualizando uma dependência)

Mais sobre esses benchmarks, instalando transformers

Testei o uv no pacote transformers da Hugging Face. A diferença de velocidade é claramente visível.

Como usar?

Abaixo estão alguns comandos que você deve ter em mãos para começar a usar o uv.

Desde a instalação até a sincronização de dependências. Encontre o código no Deepnote. Instalação

# Em macOS e Linux.
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows.
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

# Com pip.
pip install uv

# Com pipx.
pipx install uv

# com Homebrew.
brew install uv

# Com Pacman.
pacman -S uv

Criando venv

# No macOS e Linux.
source .venv/bin/activate

# Windows.
.venv\Scripts\activate

Instalando pacotes

uv pip install flask               
uv pip install -r requirements.txt

Sincronizando dependências.

uv pip sync requirements.txt  # Install from a requirements.txt file.

Deixe um comentário

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.