Executando verificação de segurança...
27

PIP NUNCA MAIS, a nova ferramenta de Python que facilita sua vida

Eu gorsto de Rust, mas não sou um dos maiores fãs de javascript, mas independente disso, você sabe como o cargo e o npm torna o gerenciamento de projetos nessas linguagens algo muito mais saudavel, e é simplesmente BIZARRO que uma das linguagens mais usadas que é o Python não tem um real gerenciador de projetos.

É ridiculo depender do dev, pra a cada nova dependencia que ele baixa pro projeto Python, um novo pip freeze > requirements.txt, por que você sabe que você já aconteceu de você adicionar uma nova dependencia mas esquecer de colocar ela no requirements.txt, coisa que ferramentas como o cargo e o npm se responsabilizam por fazer, sem contar que geram arquivos de configuração, ambiente de desenvolvimentos, criam a estrutura base do projeto e tudo que QUALQUER LINGUAGEM CIVILIZADA DEVERIA FAZER

E o proposito desse artigo é basicamente compartilhar com todos que usam Python, a existencia do uv uma ferramenta de linha de comandao pra projetos Python.

Se você faz alguma coisa em Python, eu garanto que se você baixar o uv e literalemnte só aplicar os comandos basicos da ferramenta que eu vou passar aqui, você vai soltar um

"PIP NUNCA MAIS! PROBLEMA COM A VERSÃO DO PYTHON NUNCA MAIS, ESQUECER DE ATIVAR O AMBIENTE VIRTUAL E FU*** SUA MAQUINA COM PACOTES INDESEJADOS NUNCA MAIS"

Literalmente o básico

Criar um projeto Python

Isso irá criar o projeto pra você todos os arquivos basicos necessários

uv init meu_projeto
# ou 
uv init

A estrutura é a seguinte

.
├── hello.py
├── pyproject.toml
├── .python-version
└── README.md

No arquivo .python-version você pode colocar a versão desejada do python do projeto

E você roda tudo usando

uv run hello.py
# ou alguma coisa mais especifica como
uv run -- flask run -p 3000 

E quando você rodar o projeto, vai ser automaticamente criada a pasta .venv, que vai ser seu ambiente virtual, de onde vão estar suas dependencias e tudo

Mexer com dependencias é algo vital, e pra baixar elas, você usa

uv add nome_dependencia
uv add requests --git https://github.com/psf/requests

E ela vai ser automaticamente adicionada no arquivo pyproject.toml

[project]
name = "meu_projeto_uv"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.11"
dependencies = []

Pra desistalar uma dependencia você usa

uv remove nome_dependencia

E automaticamente ela é removida

E se você realmente quiser, você pode chamar o pip e ferramentas do tipo diretamente com comandos como

uv pip install flask
uv pip install "<package_name> @ https://github.com/<user>/<repo>"
uv venv my_env
uv venv 3rd_env --python 3.11

Apesar de como eu mostrei, não ser necessario, visto que o o uv gerencia isso pra você

Eu garanto que se você usuario de python der uma chance, rapidamente você vai ver o valor nessa ferramente, e essa foi minha contribuição hoje

ADD Download

Pra baixar

curl -LsSf https://astral.sh/uv/install.sh | sh
Carregando publicação patrocinada...
6
3

Só faltou indicar como instala o uv:

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

Ou usando o próprio pip ou pipx install uv

2

Bela dica, fizemos a substituição do pip pelo uv no trabalho e tivemos ganhos significativos de perfomance no tempo de build, ficou violentamente mais rápido.

1
1
1

Bacana demais!

Eu havia feito um curso basico de python e senti falta demais disso e também estranhei inicialmente mas não fui pesquisar por conta de ser um curso iniciante. Como temos o nvm no JS e já sou muito adepto ao uso, a curva de aprendizado será tranquila.

Obrigado pela contribuição!

1

perfeito, é isso aí, depois de descobrir o rye (e posteriormente migrando pro uv) eu nunca mais instalo o python com o instalador. ele já faz tudo e tudo muito rápido

1

Comecei a usar o Poetry recentemente, realmente ajuda muito. No meu caso, uso em conjunto com o Typer para gerenciar pacotes e scripts que fazemos.

1

Caraca, manoooh! Tô doido pra esperimentar, obrigado!
Até criei um scriptzinho pra montar meus ambientes, pra garantir que não vou fazer besteira e instalar libs fora do venv.