Cuando trabajas en proyectos diferentes es común que cada uno necesite una versión distinta de Python. Instalar todas las versiones en el sistema y mantener el orden puede ser un dolor de cabeza y aquí es donde entra en juego pyenv. Nos facilita muchísimo todo este tema.
Con pyenv puedes olvidarte de los problemas de compatibilidad: lo configuras una vez y después todo va como la seda.
Y si lo combinas con pyenv-virtualenv, la experiencia mejora todavía más porque los entornos se activan automáticamente al entrar en cada carpeta, ahorrándote tiempo y dándote tranquilidad.
Pyenv optimiza el trabajo y te deja concentrarte en lo importante, sin perder tiempo peleándote con versiones de Python.
👉 Sigue leyendo y verás lo cómodo que es.
🔎 ¿Qué es pyenv?
pyenv es una herramienta que te permite instalar, cambiar y gestionar varias versiones de Python en tu máquina de manera súper sencilla.
Con pyenv puedes:
- Instalar varias versiones de Python (2.x, 3.x, antiguas o las más recientes).
- Elegir qué versión usar a nivel global (para todo el sistema).
- Definir versiones específicas a nivel de proyecto (cada carpeta puede tener la suya).
- Probar proyectos en distintas versiones sin romper nada en tu sistema.
Y si además lo combinas con pyenv-virtualenv, ganas todavía más:
- Crear entornos virtuales basados en la versión de Python que quieras.
- Asociar esos entornos a uno o varios proyectos.
- Activación automática del entorno al entrar en la carpeta del proyecto.
⚙️ Instalación de pyenv
💻macOS (Homebrew)
brew update
brew install pyenv
💻Linux (Ubuntu/Debian)
Instalar dependencias
sudo apt update
sudo apt install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncurses5-dev libncursesw5-dev xz-utils tk-dev \
libffi-dev liblzma-dev python3-openssl git
Instalar pyenv
curl https://pyenv.run | bash
- Si falla la instalación de pyenv, se instala con:
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
Opcional: si quieres usar pyenv-virtualenv (lo explicamos más abajo), entonces instala el plugin con:
git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
Después agrega esto a tu ~/.bashrc
, ~/.zshrc
o equivalente: (la línea del virtualenv si lo hemos instalado)
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv virtualenv-init -)"
Recarga la terminal:
source ~/.zshrc # o ~/.bashrc
💻Windows (pyenv-win)
En Windows no se usa el pyenv original, sino el proyecto pyenv-win 👉 https://github.com/pyenv-win/pyenv-win
Instalación rápida con PowerShell:
git clone https://github.com/pyenv-win/pyenv-win.git $HOME\.pyenv
setx PATH "%PATH%;%USERPROFILE%\.pyenv\pyenv-win\bin;%USERPROFILE%\.pyenv\pyenv-win\shims"
Cierra y abre de nuevo PowerShell o CMD y ya podrás usar pyenv
.
📌 Uso básico de pyenv
Ver versiones de python que podemos instalar:
pyenv install --list
pyenv install -l
Nos mostrará las opciones disponibles:

- Instalar una versión específica de Python:
pyenv install 3.12.2
- Listar todas las versiones instaladas y entornos virtuales creados:
pyenv versions
- Definir versión global (para todo el sistema):
pyenv global 3.12.2
- Definir versión local (solo para el proyecto / carpeta actual):
pyenv local 3.10.13
- Comprobar qué versión está activa:
pyenv version
- Eliminar un entorno virtual:
pyenv uninstall mi-entorno
🖥️ Caso práctico
Supongamos que tienes dos proyectos:
- Proyecto A que necesita Python 3.12
- Proyecto B que aún funciona con Python 3.10
Paso 1: Instalar ambas versiones
pyenv install 3.12.2
pyenv install 3.10.13
Paso 2: Configurar cada proyecto
En la carpeta del Proyecto A:
cd ProyectoA
pyenv local 3.12.2
En la carpeta del Proyecto B:
cd ProyectoB
pyenv local 3.10.13
Paso 3: Verificar
Cada vez que entres en la carpeta de un proyecto, pyenv
activará automáticamente la versión correcta de Python.
python --version
# Nos devolverá la versión que tengamos en cada lugar:
# En ProyectoA -> Python 3.12.2
# En ProyectoB -> Python 3.10.13
🔥 Entornos virtuales
Cuando trabajamos en proyectos Python, lo recomendable siempre es usar entornos virtuales para aislar dependencias y evitar conflictos.
La manera tradicional de hacerlo sería, primero estableceríamos la versión en el proyecto con pyenv local 3.10.13
y luego crearíamos el entorno con python -m venv nombreEntorno
además de activarlo con: source menv/bin/activate
Esto funciona perfectamente (pyenv lo acepta), pero tiene la pega de que tienes que activar el entorno cada vez.
La solución elegante: pyenv-virtualenv
Con este plugin puedes crear entornos virtuales ligados a versiones de Python directamente desde pyenv, y lo mejor:
👉 el entorno se activa automáticamente al entrar en la carpeta del proyecto.
Instalación
- macOS / Linux (Homebrew):
brew install pyenv-virtualenv
- Manual:
git clone https://github.com/pyenv/pyenv-virtualenv.git \ $(pyenv root)/plugins/pyenv-virtualenv
Después añade esto a tu ~/.bashrc o ~/.zshrc (si no lo agregaste en la instalación de pyenv):
eval "$(pyenv virtualenv-init -)"
- Windows (pyenv-win):
Ya incluye soporte de virtualenv, no necesitas instalar nada más.
Uso básico pyenv virtualenv
- Crear un entorno virtual:
pyenv virtualenv 3.12.2 mi-entorno
Esto crea un entorno llamado mi-entorno basado en Python 3.12.2.
- Asignarlo a un proyecto:
cd ProyectoX
pyenv local mi-entorno
Así, cada vez que entres a la carpeta ProyectoX, pyenv activará automáticamente ese entorno virtual.
Y usando comandos anteriores podremos:
- Listar entornos y versiones:
pyenv versions
- Eliminar un entorno virtual:
pyenv uninstall mi-entorno
✅ Conclusión
Si trabajas con varios proyectos en Python, pyenv es casi imprescindible. Y si además usas pyenv-virtualenv, ganarás comodidad y tiempo. Configúralo una vez y olvídate.
Y hasta aquí el post de pyenv, ¡espero que te sirva de ayuda!
Salu2!