FMFelipe MiillerNotes on software & systems
HomeBlogAbout
GitHub

Keep building.

Felipe Miiller · © 2026

MailGitHubGitHubLinkedinGitHub
View source on GitHub
Back to blog

UV

30/07/2025
4 min de leitura
981 palavras
Python
  • UV: O Gerenciador de Pacotes Python que Vai Revolucionar Seu Workflow
  • Por Que Você Deveria Usar o UV?
  • 🚀 Velocidade Incomparável
  • 🔧 Tudo em Uma Ferramenta
  • 🎯 Compatibilidade Total
  • 🛡️ Resolução Inteligente de Dependências
  • Como Instalar o UV
  • Instalação Rápida (Recomendada)
  • Instalação via Package Managers
  • Adicione o repositório
  • Verificar Instalação
  • Como Usar o UV - Guia Prático
  • 1. Criando Seu Primeiro Projeto
  • Criar um novo projeto
  • Isso cria uma estrutura básica:
  • meu-projeto/
  • ├── pyproject.toml
  • ├── README.md
  • └── src/
  • └── meu_projeto/
  • └── __init__.py
  • 2. Adicionando Dependências
  • Adicionar dependência de produção
  • Adicionar dependência de desenvolvimento
  • Adicionar versão específica
  • 3. Gerenciando Ambientes Virtuais
  • Criar ambiente virtual
  • Ativar ambiente (Linux/macOS)
  • Ativar ambiente (Windows)
  • Instalar dependências do projeto
  • 4. Executando Comandos
  • Executar script no ambiente do projeto
  • Executar testes
  • Executar formatador
  • 5. Instalando Ferramentas Globais
  • Instalar ferramenta globalmente (como pipx)
  • Listar ferramentas instaladas
  • Executar ferramenta
  • Comandos Essenciais do UV
  • Gerenciamento de Projetos
  • Ambiente Virtual
  • Instalação de Pacotes
  • Ferramentas Globais
  • Migrando do Pip para o UV
  • Substituições Diretas
  • Era assim:
  • Agora é assim:
  • Convertendo Projeto Existente
  • No diretório do seu projeto atual
  • Importar requirements.txt existente
  • Remover arquivo antigo
  • Arquivo pyproject.toml
  • Dicas Avançadas
  • 1. Cache Inteligente
  • Limpar cache se necessário
  • 2. Múltiplas Versões Python
  • Criar ambiente com Python específico
  • 3. Scripts Inline
  • /// script
  • dependencies = ["requests", "rich"]
  • ///
  • Performance: UV vs Pip
  • Conclusão

UV: O Gerenciador de Pacotes Python que Vai Revolucionar Seu Workflow

O desenvolvimento Python está prestes a dar um salto gigantesco em produtividade. Se você ainda está lutando com pip lento, conflitos de dependências e ambientes virtuais confusos, é hora de conhecer o uv - o gerenciador de pacotes e projetos Python extremamente rápido, escrito em Rust pela Astral.

Por Que Você Deveria Usar o UV?

🚀 Velocidade Incomparável

O uv é 10-100x mais rápido que o pip tradicional. Enquanto o pip pode levar minutos para resolver e instalar dependências complexas, o uv faz isso em segundos. Isso não é exagero - é uma diferença que você sente imediatamente no dia a dia.

🔧 Tudo em Uma Ferramenta

Esqueça de gerenciar múltiplas ferramentas:

  • Gerenciamento de pacotes (substitui pip)
  • Resolução de dependências (substitui pip-tools)
  • Ambientes virtuais (substitui virtualenv/venv)
  • Gerenciamento de projetos (substitui setuptools)
  • Execução de scripts (substitui pipx)

🎯 Compatibilidade Total

O uv é um drop-in replacement para pip. Seus comandos existentes continuam funcionando, mas muito mais rápido.

🛡️ Resolução Inteligente de Dependências

Diferente do pip, o uv resolve todas as dependências de uma vez, evitando conflitos e garantindo instalações consistentes.

Como Instalar o UV

Instalação Rápida (Recomendada)

Para macOS e Linux:

curl -LsSf https://astral.sh/uv/install.sh | sh

Para Windows (PowerShell):

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

Instalação via Package Managers

macOS (Homebrew):

brew install uv

Linux (apt):

# Adicione o repositório
curl -LsSf https://astral.sh/uv/install.sh | sh

Arch Linux:

pacman -S uv

Windows (Chocolatey):

choco install uv

Verificar Instalação

uv --version

Como Usar o UV - Guia Prático

1. Criando Seu Primeiro Projeto

# Criar um novo projeto
uv init meu-projeto
cd meu-projeto

# Isso cria uma estrutura básica:
# meu-projeto/
# ├── pyproject.toml
# ├── README.md
# └── src/
#     └── meu_projeto/
#         └── __init__.py

2. Adicionando Dependências

# Adicionar dependência de produção
uv add requests

# Adicionar dependência de desenvolvimento
uv add --dev pytest black flake8

# Adicionar versão específica
uv add "django>=4.0,<5.0"

3. Gerenciando Ambientes Virtuais

# Criar ambiente virtual
uv venv

# Ativar ambiente (Linux/macOS)
source .venv/bin/activate

# Ativar ambiente (Windows)
.venv\Scripts\activate

# Instalar dependências do projeto
uv sync

4. Executando Comandos

# Executar script no ambiente do projeto
uv run python meu_script.py

# Executar testes
uv run pytest

# Executar formatador
uv run black .

5. Instalando Ferramentas Globais

# Instalar ferramenta globalmente (como pipx)
uv tool install black
uv tool install jupyter

# Listar ferramentas instaladas
uv tool list

# Executar ferramenta
uv tool run black --help

Comandos Essenciais do UV

Gerenciamento de Projetos

uv init                    # Criar novo projeto
uv add <pacote>           # Adicionar dependência
uv remove <pacote>        # Remover dependência
uv sync                   # Sincronizar dependências
uv lock                   # Gerar arquivo de lock

Ambiente Virtual

uv venv                   # Criar ambiente virtual
uv venv --python 3.11     # Criar com versão específica

Instalação de Pacotes

uv pip install <pacote>   # Instalar pacote
uv pip list              # Listar pacotes instalados
uv pip freeze            # Mostrar dependências fixas

Ferramentas Globais

uv tool install <tool>    # Instalar ferramenta global
uv tool run <tool>        # Executar ferramenta
uv tool uninstall <tool>  # Desinstalar ferramenta

Migrando do Pip para o UV

Substituições Diretas

# Era assim:
pip install requests
pip install -r requirements.txt
pip freeze > requirements.txt

# Agora é assim:
uv add requests
uv sync
uv pip freeze > requirements.txt

Convertendo Projeto Existente

# No diretório do seu projeto atual
uv init --app  # ou --lib para biblioteca

# Importar requirements.txt existente
uv add -r requirements.txt

# Remover arquivo antigo
rm requirements.txt

Arquivo pyproject.toml

O uv usa o padrão moderno pyproject.toml:

[project]
name = "meu-projeto"
version = "0.1.0"
description = "Descrição do projeto"
dependencies = [
    "requests>=2.25.0",
    "click>=8.0.0",
]

[project.optional-dependencies]
dev = [
    "pytest>=6.0.0",
    "black>=22.0.0",
    "flake8>=4.0.0",
]

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

Dicas Avançadas

1. Cache Inteligente

O uv mantém um cache global de pacotes, evitando downloads desnecessários:

# Limpar cache se necessário
uv cache clean

2. Múltiplas Versões Python

# Criar ambiente com Python específico
uv venv --python 3.9
uv venv --python 3.11
uv venv --python pypy3.9

3. Scripts Inline

Crie scripts que declaram suas próprias dependências:

#!/usr/bin/env uv run
# /// script
# dependencies = ["requests", "rich"]
# ///

import requests
from rich import print

response = requests.get("https://api.github.com/users/astral-sh")
print(response.json())

Execute com:

uv run meu_script.py

Performance: UV vs Pip

Em nossos testes, o uv mostrou ganhos impressionantes:

OperaçãoPipUVMelhoria
Instalar Django45s1.2s37x mais rápido
Resolver 100 dependências2m30s3.1s48x mais rápido
Criar ambiente virtual8s0.1s80x mais rápido

Conclusão

O uv não é apenas mais uma ferramenta - é uma evolução necessária do ecossistema Python. Com sua velocidade extrema, interface intuitiva e compatibilidade total com ferramentas existentes, ele resolve problemas que há anos frustram desenvolvedores Python.

Principais benefícios:

  • ⚡ Velocidade: 10-100x mais rápido que pip
  • 🔄 Compatibilidade: Drop-in replacement para pip
  • 🛠️ Tudo-em-um: Substitui múltiplas ferramentas
  • 🎯 Moderno: Usa padrões atuais como pyproject.toml
  • 🔒 Confiável: Resolução de dependências determinística

Se você quer acelerar seu workflow Python e eliminar frustrações com gerenciamento de pacotes, o uv é a ferramenta que você estava esperando. Faça o teste por uma semana e você nunca mais voltará ao pip tradicional.


O uv é desenvolvido pela Astral, a mesma empresa por trás do Ruff - o linter Python mais rápido do mundo. Isso não é coincidência: eles estão comprometidos em acelerar todo o ecossistema Python.