Artigo original: How to Install Python 3 on Mac – Brew Install Update Tutorial
O macOS vem com o Python pré-instalado. Sua versão do Python, contudo, é a 2.7, que agora já está deprecada (abandonada pela comunidade de desenvolvedores do Python).
Toda a comunidade do Python já passou a usar o Python 3.x (a versão atual, no momento em que escrevo é a 3.10.1). E o Python 4.x será lançado logo, mas será totalmente retrocompatível.
Se você tentar executar o Python no seu terminal do macOS, receberá este alerta:

Até que a Apple decida incluir o Python 3.x como padrão, você terá de instalá-lo por conta própria.
Um único comando para executar o Python 3
Para alguns de vocês que estiverem lendo isso, esse comando será o suficiente. Você pode rodar o Python 3 usando esse comando (com o 3 ao final).
python3
Se é para isso que você veio ler este artigo, está resolvido. Tenha um ótimo dia e feliz programação.
No entanto, se você quiser um sistema de controle de versão do Python adequada para acompanhar as várias versões – e ter um controle refinado de qual sessão você utilizará – este tutorial mostrará para você com exatidão como conseguir isso.

Como instalar o Homebrew no Mac
Primeiro, você precisa instalar o Homebrew, um gerenciador de pacotes poderoso para o Mac.
Abra seu terminal. Você pode fazer isso usando o Spotlight no macOS (command+barra de espaço) e digitando "terminal".
Agora que você está na linha de comando, pode instalar a versão mais recente do Homebrew executando este comando:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Seu terminal pedirá pelo acesso em nível de superusuário. Você precisa digitar sua senha para executar esse comando. É a mesma senha que você usa para fazer o login no Mac. Digite-a e aperte Enter.

O Homebrew pedirá a você que confirme se deseja instalar o seguinte. Você precisa pressionar Enter para continuar (ou qualquer outra tela, caso você desista).

Como instalar o pyenv para gerenciar suas versões do Python
Agora, vamos aproveitar para instalar o PyEnv. Esta biblioteca ajudará você a alternar entre as diversas versões do Python (caso você deseje executar o Python 2.x por algum motivo, e antecipando o Python 4.0 que está para chegar).
Execute este comando:
brew install pyenv

Agora, você pode instalar a versão mais recente do Python.
Como usar o pyenv para instalar o Python ou atualizar sua versão do Python
Agora, você precisa executar o seguinte comando:
pyenv install 3.10.1
Observe que você pode substituir 3.10.1 ou seja qual for a versão mais recente do Python. Por exemplo, quando o Python 4.0.0 vier, você poderá executar o seguinte:
pyenv install 4.0.0
Solução de problemas na instalação do pyenv
Se você encontrar um erro dizendo "C compiler cannot create executables" ("o compilador do C não consegue criar os executáveis), a maneira mais simples de resolver isso é reinstalar o Xcode da Apple.
O Xcode é uma ferramenta criada pela Apple que inclui todas as bibliotecas do C e outras ferramentas que o Python usa quando ele é executado no macOS. O Xcode tem 11 gigabytes, mas você vai querer estar atualizado. Você pode deixar rodando essa atualização enquanto dorme.
Você pode obter a versão mais recente do Xcode da Apple aqui. Eu precisei fazer isso após atualizar para o macOS Big Sur, mas, depois de ter feito isso, todos os comandos funcionaram bem. Então, simplesmente execute novamente o comando pyenv install 3.10.1
e tudo funcionará bem.
Como configurar o PATH do seu macOS para o pyenv (Bash ou ZSH)
Primeiro, você precisa atualizar seu path do Unix para abrir caminho para que o PyEnv consiga interagir com seu sistema.
A explicação de como o PATH funciona no macOS (e no Unix) é longa, vinda diretamente do repositório do pyenv no GitHub (em inglês).
Ao executar um comando comopython
oupip
, seu sistema operacional busca em uma lista de diretórios pelo arquivo executável com aquele nome. Essa lista de diretórios está em uma variável de ambiente chamadaPATH
, e cada diretório na lista é separado por dois pontos:
/usr/local/bin:/usr/bin:/bin
Diretórios noPATH
são pesquisados da esquerda para a direita. Desse modo, um executável correspondente em um diretório no começo da lista tem precedência sobre outro ao final. Neste exemplo, o diretório/usr/local/bin
será pesquisado primeiro, seguido de/usr/bin
e logo após de/bin
.
Abaixo vemos a explicação deles sobre o que é um Shim. Estou fazendo aqui a citação por completo porque não consigo explicar isso de maneira melhor por minha conta.
O pyenv funciona inserindo um diretório "shims" no começo do PATH
:
$(pyenv root)/shims:/usr/local/bin:/usr/bin:/bin
Por meio de um processo chamado rehashing, o pyenv mantém shims naquele diretório que correspondam a cada comando do Python em cada versão instalada do Python—python
,pip
e assim por diante.
Shims são executáveis leves que simplesmente passam seu comando para o pyenv.
Aqui está o modo de atualizar seu .bash_profile
no Bash (que vem instalado no macOS por padrão):
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
Ou, se tiver instalado o ZSH (ou o OhMyZSH), como eu, você vai querer editar o arquivo .zshrc
em vez disso:
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
Em seguida, adicione PyEnv Init ao seu terminal. Execute esse comando se estiver utilizando o Bash (novamente, essa é a versão padrão do macOS):
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile
Ou execute esse comando se estiver usando o ZSH:
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.zshrc
Agora, reinicie o seu terminal rodando este comando:
reset
Como definir uma versão do Python como padrão global (Bash ou ZSH)
Você pode definir a versão mais recente do Python como a global, o que significa que ela será a versão padrão do Python que o macOS usará ao executar aplicações do Python.
Execute este comando:
pyenv global 3.9.2
Neste caso, você pode substituir 3.9.2 pela versão mais recente seja qual for.
Você agora pode verificar se isso funcionou conferindo a versão global do Python:
pyenv versions
Você deverá ver um resultado como este:

A etapa final: feche seu terminal e reinicie-o
Depois de reiniciar seu terminal, você executará o comando python
e passará a usar a nova versão do Python em vez da antiga.

Parabéns. Obrigado pela leitura e feliz programação.