Artículo original escrito por Quincy Larson
Artículo original How to Install Python 3 on Mac – Brew Install Update Tutorial
Traducido y adaptado por Josué

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). Y 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, como la versión por defecto, vas a tener 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

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

Primero necesitas instalar Homebrew, un potente gestor de paquetes para Mac.

Abre tu terminal. Puedes hacerlo utilizando el Spotlight de MacOS (comando+espacio) y escribiendo "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)"

Su terminal le pedirá acceso a nivel de superusuario. Tendrá que escribir su 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 fuertemente personalizada. Su 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 te acobardas).

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_

Cómo instalar pyenv para gestionar las versiones de Python

Ahora tomemos 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 en previsión de la llegada de Python 4.0).

Ejecuta este comando:

brew install pyenv
freecodecamp_-_freecodecamp_MacBook-Pro_-___-_-zsh_-_90-24
Instalación de PyEnv

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

Cómo utilizar pyenv para instalar Python o actualizar su versión de Python

Ahora sólo tienes que ejecutar el siguiente comando:

pyenv install 3.9.2 

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

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 resolverlo 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 friolera de 11 gigabytes, pero querrás estar al día. Es posible que quieras ejecutar esto mientras duermes.

Puedes obtener 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 preparar el camino para que PyEnv 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
Los directorios en 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.then/bin.

Y aquí está su 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 su PATH :
$(pyenv root)/shims:/usr/local/bin:/usr/bin:/bin
A través de un proceso llamado rehacer, pyenv mantiene calzas 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.
Los shims son ejecutables ligeros que simplemente pasan su comando a pyenv.

A continuación se explica cómo actualizar su .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

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

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

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 --path)"\n  eval "$(pyenv init -)"\nfi' >> ~/.zshrc

Ahora reinicie su terminal ejecutando este comando:

reset

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.

Ejecuta este comando:

pyenv global 3.9.2

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

Debería 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: Cerrar el terminal y reiniciarlo

Una vez que hayas reiniciado tu terminal, ejecuta el comando python y 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 desaprobación

Enhorabuena. Gracias por leer esto, y feliz codificación.