In this blog post, we will discuss how to use pyenv and pyenv-virtualenv, two powerful tools that can help you manage multiple Python versions and virtual environments with ease. We will cover installation instructions for various platforms, such as Mac and Linux, and discuss the most frequently used features of these tools. By the end, you’ll have a solid understanding of how to use these tools effectively in your development workflow.

I. Visión general

pyenv es una herramienta de gestión de versiones potente para Python, que te permite instalar y cambiar entre múltiples versiones de Python con facilidad. pyenv-virtualenv es una extensión de pyenv que te permite gestionar múltiples entornos virtuales. Estas herramientas son particularmente útiles cuando trabajas en múltiples proyectos con diferentes dependencias y versiones de Python.

II. Instalación

Mac

Para instalar pyenv y pyenv-virtualenv en macOS, puedes utilizar Homebrew:

brew update
brew install pyenv
brew install pyenv-virtualenv

Después de la instalación, agrega las siguientes líneas a tu archivo de configuración de shell (.bashrc, .zshrc, etc.):

if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
fi
if command -v pyenv-virtualenv-init 1>/dev/null 2>&1; then
  eval "$(pyenv virtualenv-init -)"
fi

Linux

Para instalar pyenv y pyenv-virtualenv en Linux, primero clona los repositorios y agrégalos a tu PATH:

git clone https://github.com/pyenv/pyenv.git ~/.pyenv
git clone https://github.com/pyenv/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv

A continuación, agrega las siguientes líneas a tu archivo de configuración de shell (.bashrc, .zshrc, etc.):

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

III. Uso

1. Instalar una versión de Python

Para instalar una versión específica de Python, utiliza el comando install:

pyenv install 3.9.5

2. Lista de versiones de Python disponibles

Para ver todas las versiones de Python instaladas, utiliza el comando versions:

pyenv versions

3. Establecer la versión global de Python

Para establecer la versión global de Python, utiliza el comando global:

pyenv global 3.9.5

4. Establecer la versión local de Python

Para establecer la versión local de Python para un proyecto específico, utiliza el comando local dentro del directorio del proyecto:

pyenv local 3.8.10

5. Verificar la versión actual de Python

Para verificar la versión actual de Python, utiliza el comando version:

pyenv version

6. Crear un entorno virtual

Para crear un nuevo entorno virtual con pyenv-virtualenv, utiliza el comando virtualenv:

pyenv virtualenv 3.9.5 my-project-env

7. Activar un entorno virtual

Para activar un entorno virtual, utiliza el comando activate:

pyenv activate my-project-env

8. Desactivar un entorno virtual

Para desactivar el entorno virtual actual, utiliza el comando deactivate:

pyenv deactivate

9. Listar los entornos virtuales disponibles

Para listar todos los entornos virtuales que has creado, utiliza el comando virtualenvs:

pyenv virtualenvs

10. Eliminar un entorno virtual

Para eliminar un entorno virtual, utiliza el comando uninstall:

pyenv uninstall my-project-env

Bonus: Rehash

Cada vez que instalas un nuevo paquete de Python con scripts ejecutables, es esencial ejecutar el comando rehash para actualizar los shims, asegurando que los nuevos scripts estén disponibles:

pyenv rehash

IV. Conclusión

pyenv y pyenv-virtualenv son herramientas valiosas para gestionar múltiples versiones de Python y entornos virtuales en tu flujo de trabajo de desarrollo. Con las características discutidas en esta guía, estarás bien equipado para trabajar en múltiples proyectos con dependencias y versiones de Python variables. Aprovecha estas herramientas para mantener un entorno de desarrollo limpio y organizado, mejorar tu productividad y reducir el riesgo de conflictos de dependencias.