O uv é um gerenciador de pacotes e ambientes para Python de próxima geração, projetado para ser extremamente rápido e leve
Ele substitui ferramentas como pip, pip-tools e virtualenv, oferecendo em um só comando:
Instalação de dependências (com cache e paralelismo, muito mais rápido que o pip).
-
Criação e gerenciamento de ambientes virtuais.
-
Geração de arquivo de lock (uv.lock) para reprodutibilidade.
-
Integração direta com pyproject.toml.
Em resumo: o uv é um pip + virtualenv + pip-tools turbinado em uma única ferramenta, com foco em velocidade, simplicidade e reprodutibilidade.
https://docs.astral.sh/uv/getting-started/installation/
uv --version# se esitver na pasta do projeto
uv init .
# se não exsitver na pasta do projeto
uv init diretorio/meu-appuv add fastapiUse o uv add --dev para instalar dependências só em um ambiente, por exemplo instalar só pra DEV e não para PRD:
uv add --dev pytestuv run arquivo.pyuv add jupyterDepois da instalação, você pode executar:
uv run jupyter notebook
ou
uv run jupyter lab⚡ O uv run garante que o comando rode dentro do ambiente do projeto, sem precisar ativar manualmente o .venv.
uv treeCaso precise trabalhar com múltiplas versões do Python, a utilização do Pyenv com o UV é bem simples.
Após baixar e instalar o Pyenv na sua máquina, siga os passos abaixo:
pyenv versionspyenv install 3.11.5Para definir uma versão global na sua máquina use o pyenv global:
pyenv global 3.12.1Para definir uma versão local para um projeto use o pyenv local dentro da pasta do seu projeto:
pyenv local 3.12.1Após definir a versão local para seu proejto, é preciso recriar o ambiente virtual para usar a versão Python do Pyenv.
Para isso, na raiz do seu projeto, execute:
rm -rf .venvuv venvuv syncPor fim, na raiz do projeto, execute o comando abaixo para verificar a versão do Python para aquele projeto:
uv run python --versionNo novo computador, basta copiar o projeto com esses arquivos e rodar:
uv syncO uv vai ler o pyproject.toml e o uv.lock para instalar exatamente as dependências do ambiente original.
Arquivos que você deve preservar
1 - pyproject.toml
-
Define o projeto, dependências principais, versões mínimas e metadados.
-
É o arquivo central: sem ele, não há como recriar o ambiente corretamente.
2 - uv.lock
-
Arquivo de lock do uv, equivalente a um
poetry.lockourequirements.txtcongelado. -
Garante que você terá as mesmas versões exatas das bibliotecas, preservando a reprodutibilidade.
3 - (Opcional) .python-version ou configuração equivalente
-
Caso esteja usando
pyenvou alguma forma de fixar a versão do Python. -
Isso assegura que no outro computador você usará o mesmo interpretador.
4 - (Opcional) Arquivos de configuração adicionais
-
.env(se houver variáveis de ambiente do projeto). -
Scripts auxiliares (ex.:
Makefile,tasks.py).
uv remove redisO comando uv tool install ... é usado para instalar ferramentas de linha de comando escritas em Python de forma global.
O comando uvx é usado para executar ferramentas de linha de comando escritas em Python de forma isolada, sem poluir o seu ambiente global
uv tool install blackuvx black arquivo.pyVocê poderá rodar http GET https://api.exemplo.com direto no terminal.
uv tool install httpie