Gestión de Versiones de Python en Sistemas Linux mediante Pyenv

Pyenv es una herramienta minimalista diseñada para administrar diversas instalaciones de Python en un mismo sistema. Su principal fortaleza radica en el aislamiento: permite instalar versiones de Python en el directorio del usuario sin alterar el intérprete que el sistema operativo utiliza por defecto.

Esta utilidad opera mediante un mecanismo denominado shims. Estos son pequeños ejecutables que interceptan los comandos de Python y, basándose en la configuración del entorno, redirigen la ejecución a la versión específica requerida. Pyanv destaca por ser un conjunto de scripts de Shell puros, lo que elimina la dependencia de tener Python previamente instalaod para funcionar, y se integra perfectamente con herramientas de entornos virtuales como venv o virtualenv.

  1. Preparación e Instalación

1.1 Dependencias del Sistema

Antes de compilar versiones de Python con Pyenv, es indispensable contar con las librerías de desarrollo necesarias en el sistema operativo.

Para distribuciones basadas en Debian/Ubuntu:

sudo apt update
sudo apt install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev curl git \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

Para Arch Linux:

sudo pacman -S --needed base-devel openssl zlib xz tk zstd

Para Fedora (versiones recientes):

sudo dnf install make gcc patch zlib-devel bzip2 bzip2-devel readline-devel \
sqlite sqlite-devel openssl-devel tk-devel libffi-devel xz-devel \
libuuid-devel gdbm-libs libnsl2

1.2 Instalación Automática

La forma más sencilla de obtener Pyenv es a través del instalador oficial:

curl -fsSL https://pyenv.run | bash

1.3 Configuración del Entorno de Shell

Para que el sistema reconozca los comandos de Pyenv y sus shims, es necesario añadir las vairables de entorno al archivo de configuración de su shell.

Si utiliza Bash:

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc

Si utiliza Zsh:

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc

Tras aplicar los cambios, reinicie su terminal o ejecute source ~/.bashrc (o ~/.zshrc) para activar la configuración de inmediato.

  1. Comandos Esenciales de Uso

2.1 Instalación de Binarios de Python

Puede descargar y compilar una versión específica (por ejemplo, la 3.11.8) con el siguiente comando:

pyenv install 3.11.8

2.2 Definición de la Versión Global

Para establecer una versión que funcione de manera predeterminada en todo el sistema para su usuario:

pyenv global 3.11.8

2.3 Listado de Versiones Disponibles

Para visualizar todos los intérpretes de Python que tiene instalados actualmente:

pyenv versions

2.4 Cambio de Versión en el Directorio Local

Si requiere que un proyecto específico utilice una versión de Python distinta, sitúese en la carpeta del proyecto y ejecute:

cd mi-proyecto-python
pyenv local 3.10.12

Este comando creará un archivo oculto llamado .python-version en la carpeta actual. Pyenv leerá este archivo y activará la versión indicada automáticamente cada vez que entre en ese directorio.

2.5 Modificación Temporal de la Sesión

Para cambiar la versión de Python únicamente para la ventana actual de la terminal, sin afectar al resto del sistema o proyectos:

pyenv shell 3.9.18

Todas las versiones gestionadas por esta herramienta se almacenan de forma aislada dentro de ~/.pyenv/versions/, garantizando que su entorno de desarrollo permanezca limpio y organizado.

Etiquetas: pyenv Python linux shell DevOps

Publicado el 6-26 01:26