目次
1. ¿Qué es pyenv?
Para las y los desarrolladores de Python, es muy común necesitar distintas versiones de Python según cada proyecto. En esos casos resulta útil “pyenv”.pyenv
es una herramienta que permite gestionar múltiples versiones de Python y cambiar fácilmente entre versiones diferentes por proyecto.Retos de la gestión de versiones de Python
A medida que avanzas en el desarrollo con Python, puede que distintos proyectos requieran versiones diferentes. Por ejemplo, un proyecto podría usar Python 3.9 mientras otro necesita Python 2.7. Normalmente solo hay una versión instalada en el sistema, por lo que alternar versiones se vuelve engorroso.pyenv
resuelve este problema.Ventajas de pyenv
Conpyenv
obtienes beneficios como:- Cambio de versión sencillo: con
pyenv
puedes cambiar la versión de Python a nivel de sistema o por proyecto de forma simple. - Gestión de múltiples versiones: administra con un solo comando varias versiones instaladas de Python en tu sistema. Así podrás adaptarte con flexibilidad a dependencias y diferencias entre proyectos.
- Disponible en muchos sistemas (excepto Windows): es compatible con macOS y Linux, entre otros.
Cómo funciona pyenv
pyenv
crea directorios separados para cada versión de Python e instala allí cada versión. Con los comandos pyenv global
y pyenv local
puedes especificar qué versión usar en todo el sistema o solo en un proyecto concreto.
2. Cómo instalar pyenv
Resumen
Para usarpyenv
, primero debes instalarlo en tu sistema. En esta sección se explican los pasos para macOS y Linux. En Windows, pyenv
no está soportado oficialmente; se recomienda usar otros métodos (como WSL o Anaconda).Instalación en macOS
En macOS, puedes instalarpyenv
fácilmente con Homebrew
, el gestor de paquetes para macOS. Sigue estos pasos:- Comprobar la instalación de Homebrew Abre la terminal y ejecuta:
brew --version
Si ves la información de versión, Homebrew
ya está instalado. De lo contrario, consulta las instrucciones en el sitio oficial (Homebrew公式サイト).- Instalar pyenv Si
Homebrew
está disponible, instalapyenv
con:
brew install pyenv
Cuando termine la instalación, continúa con el siguiente paso.- Configurar variables de entorno Para usar
pyenv
, añade su configuración al entorno de tu shell. Normalmente se edita.bash_profile
o.zshrc
. Ejecuta:
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init --path)"' >> ~/.bash_profile
Si usas .zshrc
, añade estas líneas ahí en lugar de .bash_profile
. Tras ello, reinicia la terminal o aplica los cambios con: source ~/.bash_profile
- Verificar la instalación Ejecuta el siguiente comando para confirmar que
pyenv
quedó instalado:
pyenv --version
Si se muestra un número de versión, pyenv
está listo.Instalación en Linux
En Linux, la instalación es similar a macOS, pero con gestores de paquetes comoapt
o yum
. A continuación, los pasos para Ubuntu:- Instalar paquetes necesarios Antes de instalar
pyenv
, instala las dependencias:
sudo apt update
sudo apt install -y 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 python-openssl git
- Instalar pyenv Clona el repositorio e instálalo (vía script):
curl https://pyenv.run | bash
- Configurar variables de entorno Para habilitar
pyenv
, añade lo siguiente a.bashrc
o.zshrc
:
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
Reinicia la terminal o ejecuta source ~/.bashrc
para aplicar los cambios.- Verificar la instalación Comprueba que
pyenv
funciona:
pyenv --version
Solución de problemas
Si aparecen errores al instalarpyenv
, puede que falten bibliotecas de dependencias. En Linux, según la distribución, pueden variar. Consulta la documentación oficial y añade las librerías necesarias.
3. Gestión de versiones de Python
Tras instalarpyenv
, aprende a gestionar versiones: instalarlas y alternarlas.Instalar versiones de Python
Conpyenv
es sencillo instalar distintas versiones. Por ejemplo, si un proyecto usa Python 3.8 y otro 3.9:- Comprobar la lista de versiones Muestra las versiones disponibles para instalar:
pyenv install --list
Se listan todas las versiones soportadas por pyenv
para que elijas la que necesitas.- Instalar una versión concreta Para instalar una versión específica:
pyenv install 3.9.1
Este comando instala Python 3.9.1. Si necesitas varias versiones, instálalas individualmente.Cambiar la versión de Python
Conpyenv
puedes alternar entre versiones instaladas y evitar conflictos de dependencias por proyecto.- Cambiar la versión global (todo el sistema) Para definir la versión usada en todo el sistema:
pyenv global 3.9.1
Así, Python 3.9.1 se usará en cualquier directorio.- Cambiar la versión a nivel de proyecto Si solo quieres otra versión en un directorio concreto, usa
pyenv local
:
pyenv local 3.8.0
Este ajuste se aplica únicamente al directorio actual; en otros rige lo definido por pyenv global
.- Comprobar la versión activa Para ver la versión de Python en uso (global o local):
pyenv version
Desinstalar versiones
Si un proyecto deja de necesitar una versión o la instalaste por error, puedes eliminarla:- Método de desinstalación Ejecuta:
pyenv uninstall 3.9.1
Con ello se elimina Python 3.9.1 del sistema.
4. Uso conjunto con virtualenv
pyenv
facilita la gestión de versiones. Para aislar dependencias por proyecto de forma eficiente, es habitual combinarlo con virtualenv
(entornos virtuales). Aquí verás cómo usarlos juntos y por qué es útil.¿Qué es virtualenv?
virtualenv
crea entornos virtuales independientes por proyecto para aislar bibliotecas y paquetes. Así, varios proyectos en la misma máquina pueden usar versiones diferentes de paquetes sin interferir entre sí. Por ejemplo, si el proyecto A usa requests
2.0 y el B la 3.0, cada uno puede tener su propio entorno.Diferencias entre pyenv y virtualenv
pyenv
se centra en la gestión de versiones de Python (instalar y alternar versiones a nivel global o local). virtualenv
gestiona las dependencias de bibliotecas/paquetes dentro de entornos aislados. Combinarlos aporta:- Gestionar múltiples versiones: con
pyenv
instalas distintas versiones y fijas la óptima por proyecto. - Aislar dependencias por proyecto: con
virtualenv
creas entornos que evitan conflictos de paquetes.
Instalar pyenv-virtualenv
Además depyenv
, el plugin pyenv-virtualenv
simplifica aún más la creación y gestión de entornos.- Instalación Instálalo con:
brew install pyenv-virtualenv
En Linux, puedes usar: git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
- Configurar variables de entorno Tras la instalación, añade estas líneas al archivo de configuración de tu shell para habilitar
pyenv-virtualenv
:
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
source ~/.bash_profile
Crear un entorno virtual
Conpyenv-virtualenv
puedes crear entornos por versión. Por ejemplo, para Python 3.8.0:pyenv virtualenv 3.8.0 my_project_env
Esto crea el entorno my_project_env
basado en Python 3.8.0.Cambiar de entorno
Para usar el entorno en un proyecto, ejecuta:pyenv local my_project_env
Así, el entorno my_project_env
queda activo solo en ese directorio. En otros, se usa la versión global.Eliminar un entorno
Si ya no lo necesitas, elimínalo con:pyenv uninstall my_project_env
Ventajas de virtualenv
Al combinarpyenv
y virtualenv
, separas completamente versiones de Python y dependencias por proyecto. Esto reduce el riesgo de conflictos y mantiene entornos estables.
5. Precauciones al usar pyenv
Aunquepyenv
y virtualenv
hacen muy eficiente la gestión de versiones y entornos, hay puntos a cuidar y focos típicos de error. Aquí verás problemas comunes y sus soluciones.1. Soporte limitado en Windows
pyenv
se recomienda principalmente en macOS y Linux. En Windows no está soportado de forma directa. Si quieres usarlo en Windows, considera:- Usar Windows Subsystem for Linux (WSL): instala WSL para tener un entorno Linux donde usar
pyenv
como si fuera Linux nativo. - Usar Anaconda: como alternativa a
pyenv
para gestionar múltiples versiones de Python y entornos en Windows.
2. Errores por falta de dependencias
En Linux, si faltan bibliotecas necesarias durante la instalación, pueden aparecer mensajes como:WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?
Cómo resolver:- Instala las dependencias necesarias (por ejemplo,
libbz2-dev
,libssl-dev
, etc.) y vuelve a ejecutarpyenv install
. Por ejemplo:
sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev
3. Conflictos entre Python del sistema y pyenv
Puede haber conflictos entre el Python preinstalado del sistema y las versiones gestionadas porpyenv
, normalmente por configuraciones de PATH o inicialización del shell incorrectas. Cómo resolver:- Verifica que tu archivo de inicio del shell (p. ej.,
.bashrc
o.zshrc
) contenga la configuración correcta depyenv
, incluyendo:
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
- Tras ello, reinicia la terminal o ejecuta
source ~/.bashrc
.
4. Fallos al instalar versiones específicas
Si falla la instalación de una versión concreta, suele deberse a la ausencia de herramientas de compilación o bibliotecas. Cómo resolver:- Instala las dependencias faltantes (p. ej.,
build-essential
,libssl-dev
) y vuelve a ejecutarpyenv install
.
5. Errores por especificar mal la versión
Si te equivocas al indicar el número de versión enpyenv
, se producirán errores. Antes de usar pyenv install
, confirma con pyenv install --list
que la versión existe. Cómo resolver:- Comprueba la lista de versiones disponibles y escribe el número correcto.
6. Conflictos entre entornos virtuales
Si usas múltiples entornos que comparten la misma versión de Python, pueden surgir conflictos de dependencias. Cómo resolver:- Crea un entorno virtual independiente por proyecto con
virtualenv
opyenv-virtualenv
para aislar completamente las dependencias.
6. Resumen y siguientes pasos
pyenv
es una herramienta muy útil y potente para gestionar versiones de Python. Si trabajas con varios proyectos que requieren versiones diferentes, pyenv
simplifica el cambio de versiones y hace más eficiente el manejo del entorno. Junto con virtualenv
, también facilita la gestión de dependencias por proyecto y el uso de múltiples entornos en la misma máquina.Resumen del uso de pyenv
- Facilidad para gestionar versiones: con
pyenv
alternas rápidamente versiones a nivel global o por proyecto. - Uso combinado de entornos: con
pyenv-virtualenv
ovirtualenv
separas dependencias y gestionas múltiples proyectos con eficiencia. - Importancia de la solución de problemas: prepárate para posibles errores o conflictos, configurando correctamente dependencias y versiones.
Siguientes pasos
- Más eficiencia con pyenv: una vez domines lo básico, considera combinarlo con herramientas como
pipenv
opoetry
para simplificar aún más la gestión de dependencias y la configuración por proyecto. - Adaptación a otros entornos: si usas Windows, como
pyenv
no está soportado directamente, evalúa WSL o herramientas alternativas como Anaconda. - Pruébalo en proyectos reales: no te quedes en la teoría; integra
pyenv
en proyectos existentes o nuevos y comprueba cómo mejora el flujo de trabajo al crear entornos virtuales y gestionar bibliotecas.
オープンソースの力を活用する方法~Ubuntuの世界へようこそ~
目次 1 1. はじめに1.1 Pythonバージョン管理の重要性1.2 Ubuntuとpyenvの組み合わせの利点2 …