Saltar al contenido

Cómo instalar y configurar Python en Ubuntu con pyenv

Publicado: at 06:00

Cómo instalar y configurar Python en Ubuntu con pyenv

Python es uno de los lenguajes de programación más populares y versátiles. A menudo, como desarrolladores, necesitamos trabajar con múltiples versiones de Python para diferentes proyectos. Pyenv es una herramienta que facilita la instalación y gestión de múltiples versiones de Python en tu sistema. En este tutorial, aprenderás cómo instalar y configurar Python en Ubuntu y Windows Subsystem for Linux (WSL) utilizando pyenv.

Como aclaración por defecto en Ubuntu viene instalado Python 3, pero si necesitas instalar una versión específica de Python o gestionar múltiples versiones, pyenv es una excelente opción.

Table of Contents

Open Table of Contents

Introducción

Pyenv es una herramienta de línea de comandos que te permite instalar fácilmente múltiples versiones de Python y alternar entre ellas. Esto es especialmente útil cuando trabajas en proyectos que requieren versiones específicas de Python.

Requisitos previos

1. Instalar las dependencias necesarias

Antes de instalar pyenv, necesitamos instalar varias dependencias que son necesarias para compilar e instalar diferentes versiones de Python.

Ejecuta el siguiente comando en la terminal:

sudo apt update && sudo apt install -y \
git-core build-essential curl wget openssl libssl-dev libreadline-dev \
dirmngr zlib1g-dev libmagickwand-dev imagemagick-6.q16 libffi-dev \
libpq-dev cmake libwebp-dev libyaml-dev libsqlite3-dev sqlite3 \
libxml2-dev libxslt1-dev software-properties-common libcurl4-openssl-dev \
libvips-dev ffmpeg libpoppler-dev mupdf make llvm libbz2-dev tree \
libncurses5-dev libncursesw5-dev xz-utils tk-dev libxmlsec1-dev \
liblzma-dev python3-openssl

Explicación:

2. Instalar pyenv

Ejecuta el siguiente comando para instalar pyenv:

curl https://pyenv.run | bash

Este script clonará el repositorio de pyenv en tu directorio ~/.pyenv y configurará los scripts necesarios.

Después de la instalación, es posible que veas una advertencia al final como:

WARNING: seems you still have not added 'pyenv' to the load path.

# Load pyenv automatically by appending
# the following to
# ~/.bash_profile if it exists, otherwise ~/.profile (for login shells)
# and ~/.bashrc (for interactive shells) :

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

# Restart your shell for the changes to take effect.

# Load pyenv-virtualenv automatically by adding
# the following to ~/.bashrc:

eval "$(pyenv virtualenv-init -)"

3. Configurar las variables de entorno

Para que pyenv funcione correctamente, debes agregarlo a tu variable PATH y configurar el entorno en tus archivos de inicio de shell. Es recomendable utilizar el archivo ~/.zprofile para las configuraciones que deben cargarse al iniciar sesión en Zsh.

3.1. Crear o editar el archivo ~/.zprofile

Abre el archivo ~/.zprofile con tu editor preferido (si no existe, se creará):

nano ~/.zprofile

3.2. Añadir las configuraciones de pyenv

Agrega las siguientes líneas al archivo ~/.zprofile:

# Configuración de pyenv
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv virtualenv-init -)"

Explicación:

Guarda los cambios y cierra el editor (en nano, presiona Ctrl + O para guardar y Ctrl + X para salir).

4. Aplicar los cambios

Recarga tu shell para aplicar los cambios:

exec "$SHELL"

Aveces aunque corras el comando no te dejara usar pyenv, si esto ocurre simplemente cierra y vuelve a abrir la terminal.

Aclaración

Si estás utilizando Bash en lugar de Zsh, puedes añadir las configuraciones a ~/.bashrc en lugar de ~/.zprofile.

5. Instalar versiones de Python con pyenv

Ahora que pyenv está instalado y configurado, puedes instalar diferentes versiones de Python y cambiar entre ellas según sea necesario.

5.1. Listar las versiones de Python disponibles

Puedes ver una lista de todas las versiones de Python disponibles para instalar:

pyenv install --list

Si quieres ver cual es la ultima versión estable de Python puedes ir a la página oficial de Python y ver cual es la ultima versión estable.

5.2. Instalar una versión específica de Python

Por ejemplo, para instalar Python 3.12.0:

pyenv install 3.12.6

Nota: La instalación puede tardar varios minutos, ya que pyenv compila Python desde el código fuente.

5.3. Establecer la versión global de Python

Para establecer la versión instalada como la versión global predeterminada:

pyenv global 3.12.6

Verifica la versión de Python:

python --version

Deberías ver:

Python 3.12.6

Solución de problemas comunes

Error relacionado con OpenSSL

Al instalar versiones más recientes de Python, es posible que encuentres un error relacionado con OpenSSL. Esto se debe a que algunas versiones de Ubuntu no incluyen la versión necesaria de OpenSSL.

Solución:

Agrega el repositorio impish-security y actualiza libssl1.1:

echo "deb http://security.ubuntu.com/ubuntu impish-security main" | sudo tee /etc/apt/sources.list.d/impish-security.list
sudo apt update
sudo apt install libssl1.1

Luego, intenta instalar nuevamente la versión de Python con pyenv.

Pyenv no se carga correctamente

Si después de reiniciar tu terminal, pyenv no funciona, verifica que las líneas de configuración estén correctamente añadidas en ~/.zprofile. Asegúrate de que no haya errores tipográficos y que las rutas sean correctas.

Actualizar pyenv y sus plugins

Para mantener pyenv actualizado, puedes ejecutar:

cd ~/.pyenv && git pull

Vídeo Tutorial

Si eres una persona visual, aquí tienes un vídeo tutorial que te guiará a través de los pasos para instalar y configurar Python con pyenv en Ubuntu y WSL:

En este vídeo se cubren todos los pasos detallados anteriormente, además de consejos adicionales para gestionar tus versiones de Python y entornos virtuales con pyenv.

Conclusión

Has instalado y configurado con éxito Python utilizando pyenv en tu sistema Ubuntu o WSL. Ahora puedes gestionar múltiples versiones de Python y entornos virtuales de manera eficiente, lo que es esencial para trabajar en diferentes proyectos con requisitos específicos.

¡Disfruta de tu entorno de desarrollo de Python mejorado y sigue explorando las posibilidades que pyenv ofrece!