MacOS viene con Python preinstalado. Pero es la versión 2.7 de Python, que ahora está obsoleta (abandonada por la comunidad de desarrolladores de Python).

Toda la comunidad de Python ha pasado a utilizar Python 3.x (la versión actual al escribir esto es la 3.9). Python 4.x saldrá pronto, pero será completamente compatible con las versiones anteriores.

Si intentas ejecutar Python desde tu terminal de MacOS, verás incluso esta advertencia:

freecodecamp_-_freecodecamp_MacBook-Pro_-___-_-zsh_-_84-24-1
ADVERTENCIA: No se recomienda Python 2.7. Esta versión se incluye en macOS por compatibilidad con el software heredado. Las futuras versiones de macOS no incluirán Python 2.7. En su lugar, se recomienda la transición al uso de 'python3' desde el Terminal.

Hasta que Apple decida establecer Python 3.x por defecto, tendrás que instalarlo tú mismo.

Un solo comando para ejecutar Python 3

Para algunos de los que están leyendo esto, este comando puede ser suficiente. Puedes ejecutar Python 3 usando este comando (con el 3 al final).

python3
Línea de comandos

Si eso es todo lo que has venido a buscar, no te preocupes. Que pases un buen día y que seas feliz codificando.

Pero si quieres un sistema de control de versiones de Python adecuado para hacer un seguimiento de varias versiones - y tener un control preciso sobre qué versión utilizas - este tutorial te mostrará exactamente cómo lograrlo.

Megaman-810x600
Por cierto, si te preguntas por qué sigo refiriéndome a Python 3.x, la x es un sustituto de las subversiones o versiones puntuales, como las llaman los desarrolladores.

Cómo instalar Homebrew en Mac

En primer lugar, necesitas instalar Homebrew, un potente gestor de paquetes para Mac.

Abre tu terminal. Para ello, utilice MacOS spotlight (comando+espacio) y escriba "terminal".

Ahora que estás en una línea de comandos, puedes instalar la última versión de Homebrew ejecutando este comando:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Instalar Hombrew

Tu terminal te pedirá acceso en el ámbito de superusuario. Tendrás que escribir tu contraseña para ejecutar este comando. Esta es la misma contraseña que escribes cuando te conectas a tu Mac. Escríbala y pulse Intro.

freecodecamp_-__bin_bash_-c__-__bin_bash_-_sudo_-_bash_-c____bin_bash_012set_-u_012_012abort___-_012__printf___s_n_______012__exit_1_012-_012_012if___-z___-BASH_VERSION_--_____then_012__abort__Bash_is_required_to_interpret_this_script___012
Una captura de pantalla de mi terminal personalizada. Tu terminal probablemente se verá diferente de esto.

Homebrew te pedirá que confirmes que quieres instalar lo siguiente. Tienes que pulsar enter para continuar. (O pulsar cualquier otra tecla si no quieres).

freecodecamp_-__bin_bash_-c__-__bin_bash_-_bash_-c____bin_bash_012set_-u_012_012abort___-_012__printf___s_n_______012__exit_1_012-_012_012if___-z___-BASH_VERSION_--_____then_012__abort__Bash_is_required_to_interpret_this_script___012fi_012_
Presiona Return para continuar o otra para cancelar

Cómo instalar pyenv para gestionar las versiones de Python

Ahora vamos a tomarnos un momento para instalar PyEnv. Esta biblioteca te ayudará a cambiar entre diferentes versiones de Python (en caso de que necesites ejecutar Python 2.x por alguna razón y anticipándonos de la llegada de Python 4.0).

Ejecuta este comando:

brew install pyenv
Instalar versionamiento de Python
freecodecamp_-_freecodecamp_MacBook-Pro_-___-_-zsh_-_90-24
PyEnv instalando

Ahora puedes instalar la última versión de Python.

Cómo usar pyenv para instalar Python o actualizar tu versión de Python

Ahora sólo tienes que ejecutar el siguiente comando:

pyenv install 3.9.2 
Instalar versión 3.9.2 de Python 

Tenga en cuenta que puede sustituir la versión 3.9.2 por la última versión de Python. Por ejemplo, una vez que salga Python 4.0.0, puedes ejecutar esto:

pyenv install 4.0.0
Instalar la versión 4.0.0 cuando salga

Solución de problemas de instalación de pyenv

Si te encuentras con un error de que "el compilador de C no puede crear ejecutables", la forma más sencilla de solucionarlo es reinstalar Xcode de Apple.

Xcode es una herramienta creada por Apple que incluye todas las bibliotecas C y otras herramientas que Python utiliza cuando se ejecuta en MacOS. Xcode ocupa la enorme cantidad de 11 gigabytes, pero querrás estar al día. Es posible que quieras ejecutar esto mientras duermes.

Puedes conseguir la última versión de Xcode de Apple aquí. Tuve que hacer esto después de actualizar a MacOS Big Sur, pero una vez que lo hice, todos los siguientes comandos funcionaron bien. Sólo tienes que volver a ejecutar el pyenv install 3.9.2 anterior y ahora debería funcionar.

Cómo configurar el PATH de MacOS para pyenv (Bash o ZSH)

Primero tienes que actualizar tu ruta Unix para pavimentar el camino a PyEnv y que pueda interactuar con tu sistema.

Esta es una larga explicación de cómo funciona PATH en MacOS (y Unix), directamente desde el repo de GitHub de pyenv.

Cuando ejecutas un comando como python o pip, tu sistema operativo busca en una lista de directorios para encontrar un archivo ejecutable con ese nombre. Esta lista de directorios vive en una variable de entorno llamada PATH, con cada directorio de la lista separado por dos puntos:
/usr/local/bin:/usr/bin:/bin
Directorio de ejecutables
Los directorios del PATH se buscan de izquierda a derecha, por lo que un ejecutable que coincida en un directorio al principio de la lista tiene prioridad sobre otro al final. En este ejemplo, se buscará primero en el directorio /usr/local/bin, luego en /usr/bin y después en /bin.

Aquí está tu explicación de lo que es un Shim. Vuelvo a citarlos extensamente, porque realmente no puedo explicarlo mejor.

pyenv funciona insertando un directorio de calzas al frente de tu PATH:
$(pyenv root)/shims:/usr/local/bin:/usr/bin:/bin
Directorio de ejecutable
A través de un proceso llamado rehacer, pyenv mantiene shims en ese directorio para que coincida con cada comando de Python a través de cada versión instalada de Python- python, pip, y así sucesivamente.
Shims son ejecutables ligeros que simplemente pasan su comando a pyenv.

A continuación se explica cómo actualizar tu .bash_profile en Bash (que se instala en MacOS por defecto):

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
Pyenv en el bash profile

O si has instalado ZSH (o OhMyZSH) como yo, querrás editar el archivo .zshrc en su lugar:

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
Pyenv en ZSH

Entonces querrás añadir PyEnv Init a tu terminal. Ejecuta este comando si estás usando Bash (de nuevo, este es el predeterminado con MacOS):

echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bash_profile
Pasa PyEnv Iinit a la terminal

O ejecuta este comando si estás usando ZSH:

echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.zshrc
Pasa PyEnv Iinit a la terminal a ZSH

Ahora reinicie su terminal ejecutando este comando:

reset

(Bash or ZSH)Cómo establecer una versión de Python por defecto global (Bash o ZSH)

Puedes configurar la última versión de Python para que sea global, lo que significa que será la versión por defecto de Python que utiliza MacOS cuando ejecutas aplicaciones de Python.

Corre el comando de abajo:

pyenv global 3.9.2
Comando python global

De nuevo, puedes sustituir la versión 3.9.2 por la más reciente.

Ahora puedes verificar que esto ha funcionado comprobando la versión global de Python:

pyenv versions
pyenv versiones

Debe ver esta salida:

freecodecamp_-_freecodecamp_MacBook-Pro_-_-zsh_-_84-24
El * significa que la versión es ahora la global por defecto

El paso final: Cierra la terminal y reiníciala

Una vez que hayas reiniciado tu navegador, ejecuta el comando python lanzarás la nueva versión de Python en lugar de la antigua.

freecodecamp_-_python_-_python_-_python_-_119-36
¡Sí!. Python 3.9.2 y sin advertencias de cosas viejas

Felicitaciones. Gracias por leer esto y feliz codificación.

Traducido del artículo de Quincy Larson - How to Install Python 3 on Mac – Brew Install Update Tutorial