Python en macOS, la versión de esta guía para Mac. Vas a aprender exactamente cómo instalar Python con pyenv y Homebrew: varias versiones conviviendo, la de cada proyecto fijada en su carpeta y entornos virtuales integrados con pyenv-virtualenv.
En Mac, Python tiene su propia historia: el sistema dejó de incluirlo hace años y el que llega con las Command Line Tools está pensado para las herramientas de Apple, no para tus proyectos. He visto más de un entorno donde conviven tres Pythons (el de las CLT, uno de brew y uno descargado del sitio oficial) y nadie sabe cuál responde.
El problema es ese: sin un gestor, cada instalación de Python se suma a la anterior en lugar de reemplazarla, y which python se convierte en una lotería.
Vamos a ver:
- Instalar pyenv y pyenv-virtualenv con Homebrew.
- Configurar
~/.zprofiley~/.zshrccorrectamente. - Instalar versiones de Python, elegir la global y fijarla por proyecto.
- Crear entornos virtuales ligados a pyenv.
Al final tendrás un solo dueño de Python en tu Mac: tú.
Esta guía asume que ya tienes Homebrew instalado. Si no, empieza por Setup macOS para desarrollo profesional.
Tabla de contenidos
Tabla de contenidos
Paso 1: Instala pyenv y pyenv-virtualenv
Actualiza las fórmulas e instala ambos de una vez:
brew update
brew install pyenv pyenv-virtualenv
Es el método que recomienda la documentación oficial de ambos proyectos para macOS, y se actualizan junto al resto de tus herramientas.
Paso 2: Configura tu shell
El reparto de siempre en la serie: variables y PATH en ~/.zprofile, inicialización interactiva en ~/.zshrc.
echo '' >> ~/.zprofile
echo '# Configuración base de pyenv' >> ~/.zprofile
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zprofile
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zprofile
echo '' >> ~/.zshrc
echo '# Inicialización interactiva de pyenv' >> ~/.zshrc
echo 'eval "$(pyenv init - zsh)"' >> ~/.zshrc
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc
Recarga la configuración (o cierra y abre la terminal):
source ~/.zprofile
source ~/.zshrc
Verifica:
pyenv --version
Paso 3: Instala Python y define la versión global
Consulta las versiones estables recientes:
pyenv install -l | grep -E '^[[:space:]]*[0-9]+\.[0-9]+\.[0-9]+$' | tail -n 20
Instala la que necesites (usa la más reciente de la lista) y déjala como predeterminada:
pyenv install 3.13.5
pyenv global 3.13.5
La instalación tarda varios minutos: pyenv compila Python desde la fuente. Las dependencias que necesita ya las tienes si seguiste el setup de la serie (Homebrew instala las suyas por fórmula).
Verifica:
python --version
pip --version
pyenv version
Fíjate en el detalle: python a secas (no python3) ya apunta a tu versión gestionada.
Paso 4: Fija la versión por proyecto
Dentro de la carpeta de un proyecto:
cd mi-proyecto
pyenv local 3.13.5
Esto crea un archivo .python-version: al entrar a esa carpeta, pyenv activa esa versión automáticamente. Quien clone el repo trabaja con la misma versión que tú.
Paso 5: Crea entornos virtuales con pyenv-virtualenv
La gran recompensa. Cada proyecto Python debería tener su entorno aislado de paquetes, y pyenv-virtualenv lo integra al flujo:
pyenv virtualenv 3.13.5 mi-proyecto-313
pyenv local mi-proyecto-313
Con eso, el .python-version del proyecto apunta al entorno virtual completo: entras a la carpeta y tienes la versión correcta y sus paquetes aislados, sin activate manual. Si algún día lo necesitas a mano: pyenv activate mi-proyecto-313 y pyenv deactivate.
Verifica en cualquier momento:
pyenv versions
pyenv which python
Solución de problemas comunes
pyenv: command not found
Revisa que las líneas del Paso 2 quedaron en los archivos correctos y reinicia la terminal.
python --version no cambia
pyenv version
which python
Si la ruta no sale de ~/.pyenv, falta la inicialización del Paso 2 en tu ~/.zshrc.
Mantenimiento
Actualizar pyenv y el plugin (instalados con Homebrew):
brew upgrade pyenv pyenv-virtualenv
Y para eliminar una versión o entorno que ya no uses:
pyenv uninstall 3.13.5
Conclusión
Un solo dueño de Python en tu Mac: versiones compiladas en tu usuario, .python-version por proyecto y entornos virtuales que se activan solos. El Python de las Command Line Tools queda donde debe estar: al servicio de Apple, no de tus proyectos.
Si esto te fue útil, el artículo relacionado es el paso lógico: Cómo instalar y configurar Python en Ubuntu con pyenv, la versión de esta guía para Ubuntu y WSL.
La próxima semana sigo con la serie: Ruby con rbenv, el gestor que inspiró a todos los demás. Si no te lo quieres perder, suscríbete al newsletter en la portada del blog.