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:
-
Isolamento Total: Ele baixa versões do Python que ficam guardadas em uma pasta própria, longe dos arquivos do macOS.
-
Velocidade de Rust: Ele chega a ser 100x mais rápido que o
piptradicional. -
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!
