Python no Mac: Deixando de ser uma “Zona” com o UV

Pessoal,

Se você usa o macOS para qualquer coisa além de navegar na web, seja para scripts médicos, automação de home-lab ou desenvolvimento, já deve ter sentido o drama: o Python no Mac é uma bagunça total!

Recentemente, precisei colocar ordem na casa no meu Mac Mini e a solução foi tão eficiente que decidi compartilhar. Se o seu terminal está poluído ou você vive recebendo erros de “command not found” ou conflitos de biblioteca, este post é para você.

O Python “Nativo” do macOS

O macOS já vem com o Python instalado de fábrica. Mas aqui está o segredo: aquele Python não é para você, ele é para Apple e para o MacOS.

O sistema operacional usa essa versão para processos internos, automações do Finder e scripts de manutenção. Assimm , quando usamos o pip install sem cuidado, estamos injetando arquivos dentro das pastas do sistema. Eventualmente, uma atualização do macOS apaga o que foi feito, ou pior, instalamos uma biblioteca que conflita com o que o sistema precisa para rodar. É a receita para o desastre.

Durante anos, tentamos resolver isso com pyenv, conda ou poetry. Funciona, mas é lento e complexo. Até que surgiu o uv (veja aqui e aqui)

A Solução: UV (Rápido, Isolado e Moderno)

O uv é uma ferramenta escrita em Rust que substitui quase tudo o que você conhecia sobre gerenciamento de Python. Ele é virtualmente instantâneo e mantém seu sistema operacional “intocado”.

O uv permite:

  1. Isolamento Total: Ele baixa versões do Python que ficam guardadas em uma pasta própria, longe dos arquivos do macOS.

  2. Velocidade de Rust: Ele chega a ser 100x mais rápido que o pip tradicional.

  3. Simplicidade: Um único executável faz tudo.

Como organizar sua casa (Passo a Passo)

1. Instalação

Esqueça o instalador oficial do site do Python ou o Homebrew para isso. Abra o seu terminal e rode:

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

Após instalar, não esqueça de rodar source $HOME/.local/bin/env para ativar os comandos.

2. Rodando scripts sem “sujar” nada

Achou um script legal na internet? Não instale nada. Use o comando run. O uv cria um ambiente temporário, baixa o que precisa, roda o script e depois “limpa a mesa”:

uv run script_interessante.py

3. Para seus projetos sérios

Para aquele seu app sério que você está planejando, o fluxo agora é profissional:

<span class="hljs-built_in">cd</span> meu_projeto
uv init             <span class="hljs-comment"># Cria o projeto organizado</span>
uv add numpy pandas  <span class="hljs-comment"># Adiciona bibliotecas só para este projeto</span>

Isso cria uma pasta .venv dentro do seu projeto. O que acontece ali dentro, fica ali dentro. O macOS continua estável e intocado.

Dicas de Ouro do “Chicletes para o Cérebro”

  • O Pulo do Gato para Macs Intel (x86_64)

Se você, como eu, ainda extrai o máximo de um Mac Mini Intel, o uv é uma benção. Ao instalar, ele identifica automaticamente a arquitetura x86_64 e baixa binários otimizados exatamente para o seu processador. Isso evita o “lixo” de binários universais e garante que seus scripts rodem com performance máxima, sem camadas de tradução. É a melhor forma de dar sobrevida e agilidade ao hardware Intel.

  • Nunca use SUDO com PIP

Se um tutorial mandar você digitar sudo pip install, feche a aba. Usar sudo com Python é certeza de dar errado. Você vai bagunçar o seu sistema e, mais cedo ou mais tarde, algo vai quebrar. Com o uv, você nunca mais precisará de privilégios de administrador para instalar uma biblioteca.

  • O Python Fantasma

Você pode ter várias versões do Python (3.10, 3.12, 3.13) instaladas simultaneamente pelo uv. Elas não brigam entre si. Cada projeto usa a sua, e o Python do sistema (o “perigoso”) continua lá, quietinho, fazendo o trabalho dele para a Apple.

Organizar o Python não é sobre ter “uma versão para tudo”, mas sim sobre ter paredes sólidas entre seus experimentos e o seu sistema operacional.

Menos tempo brigando com o terminal, mais tempo criando.

Até o próximo post, pessoal!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Rolar para cima