Você está cansado de fazer malabarismos com várias ferramentas como pip, virtualenv, conda, poesia e pyenv apenas para manter seus ambientes e dependências Python sob controle? Você não está sozinho! Gerenciar projetos Python pode parecer uma dor de cabeça, especialmente com todos os diferentes gerenciadores de pacotes e ferramentas que você precisa lidar.
Enter uv — o Universal Virtualenv. Pense nele como um gerenciador de pacotes completo projetado para agilizar e acelerar seu processo de desenvolvimento Python.
uv se inspira em Rye, outro gerenciador de embalagens moderno, para unificar os melhores recursos de pip, pip-tools, pyenv, virtualenv e poesia. Construído em Rust, o uv não é apenas rápido, mas também altamente eficiente, simplificando tudo, desde o gerenciamento de dependências até a criação de ambientes virtuais.
Em poucas palavras, uv é uma questão de consolidação. Por que alternar entre diversas ferramentas quando você pode ter uma experiência unificada? O objetivo é eliminar o atrito do desenvolvimento em Python, oferecendo uma maneira mais consistente e rápida de gerenciar seus projetos. E também está explodindo rápido! Isso abre novas portas, para uma gestão dinâmica
Um dos recursos mais interessantes do uv é a capacidade de adicionar dependências diretamente em seu script Python. Imagine que você tem um script simples como este:
# app.py import requests from rich.pretty import pprint response = requests.get("https://peps.python.org/api/peps.json") data = response.json() pprint([(k, v["title"]) for k, v in data.items()][:10])
Executar este script geralmente significa configurar um ambiente virtual e instalar dependências manualmente. Com uv, você pode incorporar todas as suas dependências diretamente no script, tornando-o autocontido e compartilhável:
$ uv add --script app.py 'requestsGeração automática de metadados
Isso adiciona metadados ao arquivo de script:
# /// script # dependencies = [ # "requestsE é isso! Você pode compartilhar este arquivo com outra pessoa e ela pode simplesmente executar:
$ uv run app.pyE voilà – nenhuma configuração externa é necessária! Tudo graças à velocidade e eficiência do UV.
2. Criação e gerenciamento de ambientes virtuais
Introdução aos ambientes virtuais
Por padrão, uv requer que pacotes sejam instalados em ambientes virtuais para manter seu sistema limpo e evitar conflitos entre diferentes projetos. Criar um ambiente virtual com uv é simples:
$ uv venvIsso criará um diretório .venv contendo o ambiente isolado. Se quiser especificar um diretório personalizado ou uma versão do Python, você pode fazer:
$ uv venv my_env --python 3.9O ambiente está pronto para uso e o uv irá detectá-lo automaticamente para todos os seus comandos, como instalação de pacotes ou execução de scripts.
Quando usar uv add vs. uv pip install
Use uv add: Quando você deseja adicionar dependências ao arquivo pyproject.toml do seu projeto. Isso é melhor quando você está desenvolvendo um projeto e deseja acompanhar todas as dependências, tornando o projeto facilmente compartilhável e reproduzível. Abordaremos isso no próximo post, fique ligado!
$ uv add fastapi
Isso atualizará seu pyproject.toml e bloqueará a versão em uv.lock.
Use uv pip install: Quando você deseja instalar pacotes para uso rápido sem modificar o arquivo do projeto, ou para ferramentas globais onde você não precisa rastreá-los em um pyproject.toml. Pense no uv pip como uma instalação imediata e única.
$ uv pip install requests
Escolher o comando certo garante que seu projeto seja gerenciado adequadamente e fácil de compartilhar ou implantar.
Todos nós já passamos por isso – seu código funciona hoje e quebra amanhã porque um pacote é atualizado. Com uv, você pode evitar isso bloqueando versões de pacotes para garantir consistência e reprodutibilidade:
[tool.uv] exclude-newer = "2023-10-16T00:00:00Z"
Dessa forma, mesmo que surjam novas versões de suas dependências, seu projeto permanece estável. Perfeito para projetos de longo prazo onde você não pode se dar ao luxo de surpresas!
Muitos desenvolvedores precisam trabalhar em vários projetos que exigem diferentes versões do Python. uv torna a troca de versões tão fácil quanto:
$ uv python install 3.8 3.9 3.10
Depois que as versões são instaladas, alternar entre elas é fácil:
$ uv run --python 3.10 app.py
E se você quiser bloquear uma versão específica para um projeto:
$ uv python pin 3.9
Chega de fazer malabarismos com comandos pyenv - uv cuida de todo o trabalho pesado para você.
uv oferece uma experiência semelhante à do pip, mas com desempenho turboalimentado. A instalação de pacotes é simples:
$ uv pip install flask
Precisa adicionar dependências opcionais ou instalar diretamente de um repositório GitHub? Sem problemas:
$ uv pip install 'torch>=1.10.0' "git https://github.com/astral-sh/ruff"
Chega de esperar por instalações lentas – o UV faz o trabalho de forma rápida e eficaz.
Esteja você linting código ou formatação de arquivos, o uv facilita a instalação de ferramentas CLI:
Globalmente:
$ uv tool install ruff
Localmente dentro de um projeto:
$ uv add ruff
Executar comandos efêmeros sem instalar globalmente:
$ uvx black my_code.py
Diga adeus aos conflitos de pacotes e à poluição ambiental - basta executar suas ferramentas quando e onde você precisar delas.
Se você deseja turbinar seu desenvolvimento em Python e quer parar de lutar com várias ferramentas, uv é a sua resposta. Com seus comandos simplificados, ambientes reproduzíveis e gerenciamento eficiente de pacotes, uv torna o desenvolvimento em Python um prazer e não uma tarefa árdua.
Pronto para dar uma volta com UV? ? Comece hoje e experimente uma maneira melhor de gerenciar seus projetos Python.
Fique ligado na Parte 2, onde nos aprofundaremos em recursos avançados, como aproveitar o pyproject.toml, lidar com instalações de ferramentas globais versus locais e como o uv pode ser seu melhor amigo ao gerenciar ambientes complexos.
Boa codificação! ?✨
Para mais detalhes e documentação completa, confira a documentação uv.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3