FMFelipe MiillerNotes on software & systems
HomeBlogAbout
GitHub

Keep building.

Felipe Miiller · © 2026

MailGitHubGitHubLinkedinGitHub
View source on GitHub
Back to blog

O que é o uv em Python e por que você deve começar a usá-lo.

22/09/2024
2 min de leitura
540 palavras
PythonTutorial

    Se você já usou o pip para instalar pacotes Python, sabe que às vezes a velocidade pode ser um problema — principalmente em projetos maiores. O uv chegou para resolver isso.

    Neste artigo, vou te mostrar o que é o uv, por que ele está ganhando tanta atenção na comunidade Python e como você pode usá-lo para acelerar o gerenciamento de pacotes no seu projeto.


    O que é o uv****?

    O uv é um instalador de pacotes para Python, escrito em Rust, criado pela equipe da Astral (a mesma que desenvolve o rye). Ele promete instalações até 100x mais rápidas que o pip, usando resolução paralela e otimizações modernas.

    Além disso, o uv substitui ferramentas como:

    • pip (instalação de pacotes)
    • venv ou virtualenv (ambientes virtuais)
    • pip-tools (geração de arquivos requirements.lock)
    • pip-sync (sincronização de dependências)

    Por que usar o uv****?

    A adoção do uv está crescendo porque ele resolve problemas reais do ecossistema Python. Veja alguns exemplos:

    Problemas com pip:

    • Instalações lentas
    • Ambiente virtual separado
    • Difícil manter dependências travadas corretamente

    Soluções com uv:

    • Instalação ultra rápida
    • Ambiente integrado com o gerenciador de pacotes
    • Geração automática de arquivos .lock para reprodutibilidade

    E o melhor: ele é totalmente compatível com o PyPI. Ou seja, você continua usando os pacotes que já conhece.


    Como instalar o uv

    Você pode instalar o uv de forma simples:

    1. Usando o script oficial:
    curl -Ls https://astral.sh/uv/install.sh | bash

    Comandos básicos do uv

    Criar um ambiente virtual:

    uv venv

    Rodar comandos no ambiente:

    uv run python script.py

    Instalar pacotes:

    uv pip install requests

    Instalar a partir de um requirements.txt:

    uv pip install -r requirements.txt

    Gerar um lockfile com versões fixas:

    uv pip compile

    Sincronizar o ambiente com o lockfile:

    uv pip sync

    Exemplo prático

    Criando um projeto com Flask:

    mkdir meu-projeto
    cd meu-projeto
    uv venv
    uv pip install flask
    uv run python -m flask --version

    Em segundos, você já tem o ambiente pronto e funcionando.


    Como o uv resolve o controle de versões das dependências

    Um dos maiores desafios no Python é garantir que as mesmas versões de pacotes sejam usadas em diferentes ambientes (dev, CI, produção). O uv resolve isso com:

    1. Lockfiles (requirements.lock)

      O comando uv pip compile gera um arquivo com versões travadas de todos os pacotes (e suas subdependências). Isso garante reprodutibilidade.

    2. Sincronização com uv pip sync

      Esse comando garante que o ambiente só tenha exatamente os pacotes e versões definidos no .lock. Ele remove dependências a mais e evita erros por divergência de ambiente.

    3. Compatibilidade com requirements.txt

      Você pode transformar seu requirements.txt em um lockfile com:

      uv pip compile -r requirements.txt

    Conclusão

    O uv representa um grande passo na evolução do gerenciamento de pacotes em Python. Ele é rápido, moderno, confiável e resolve problemas reais de quem trabalha com projetos Python todos os dias.

    Se você busca mais performance, controle de versões e simplicidade, o uv merece um lugar no seu fluxo de desenvolvimento.