Pyenv es una herramienta popular en el ecosistema de desarrollo de Python. Su principal utilidad es la de ayudar a los desarrolladores a manejar múltiples versiones de Python en sus equipos de trabajo, y facilitan la capacidad de cambiar entre versiones. Esto es de mucha utilidad en situaciones que requieren trabajar en diferentes proyectos que difieran en sus versiones de Python. De igual manera es de mucha utilidad cuando se quieren realizar pruebas de código en las diferentes versiones de Python.
Los principales usos de Pyenv los podemos describir como los siguientes:
El principal uso de Pyenv es el de permitir a los desarrolladores manejar diferentes versiones de Python en sus sistemas. Permite la instalación de múltiples versiones de Python, que puedan funcionar a la vez, sin ninguna interferencia con la versión instalada a nivel del sistema. Esto es de mucho valor al momento de trabajar en proyectos que requieren una versión específica de Python, ya sea por temas de compatibilidad o alguna otra razón.
Por medio de Pyenv se habilita la capacidad de cambiar entre diferentes versiones de Python. Esto quiere decir que se puede elegir un intérprete de Python específico para cada sesión de la terminal, o para un proyecto específico. Esto ayuda a evitar conflictos entre diferentes proyectos que puedan depender de diferentes versiones de Python. Como ejemplo, si alguien tiene Python 3.7, 3.8 y 3.9 por medio de Pyenv, es posible cambiar de versión para un proyecto, y luego utilizar Python 3.9 para un proyecto diferente, todo por medio de un comando simple.
Pyenv permite configurar una versión "global" de Python, que es la versión que se utilizará por defecto cuando no exista en la configuración detalle sobre la versión del proyecto. Esta versión se puede preceder muy fácilmente por medio de la configuración dentro del proyecto. Contar con una versión global es de mucha utilidad cuando se desea tener una versión por defecto de Python para cualquier nuevo proyecto que se cree, sin la necesidad de configurar la versión manualmente para cada uno de ellos.
Mientras el enfoque de Pyenv es manejar versiones de Python, trabaja de manera muy conveniente con ambientes virtuales como virtualenv
o el incluido en Python, venv
. Los ambientes virtuales permiten la creación de ambientes aislados para los proyectos, con sus dependenciuas y versiones de Python específicas. Utilizar Pyenv en conjunto con los ambientes virtuales, es posible lograr una combinación poderosa para crear un sistema que de separación de ambientes de desarrollo simple y manejable entre cada proyecto dentro de la misma computadora.
Pyenv cuenta con un sistema de plugins que permite aumentar sus capacidades. Existen plugins que proveen optimizaciones adiciones sobre los compiladores, mientras que existen otros que integran Pyenv con herramientas externas o manejadores de paquetes. Estos plugins aumentan increíblemente la capacidad de Pyenv y hace posible la configuración para cubrir las necesidades particulares de cada quien.
Pyenv simplifica muchos temas y complejidades que existen al contar con la necesidad de contar con varias versiones de Python instaladas dentro de la misma computadora. Hacer uso de Pyenv reduce enormemente estas complejidades, al punto de básicamente eliminarlas. Adicional a esto, crea la opción de realizar pruebas de manera rápida y sencilla entre diferentes versiones para así garantizar la funcionalidad de la aplicación a través de diferentes instancias de Python.
Si estás emocionado por utilizar Pyenv y aprovechar sus ventajas para gestionar múltiples versiones de Python, te proporcionamos una breve guía para instalar Pyenv en tu sistema.
Antes de continuar, te recomendamos revisar nuestro artículo detallado sobre Cómo Instalar Pyenv para obtener instrucciones paso a paso y asegurarte de tener todo lo necesario configurado en tu entorno.
Una vez que hayas instalado Pyenv, podrás gestionar tus versiones de Python con facilidad y crear entornos virtuales para cada proyecto.
Debido a que virtualenv es un plugin de pyenv, es necesario asegurarse que el plugin esté correctamente instalado.
Este método instala el plugin dentro del directorio de plugins de Pyenv Primero se hace el checkout de pyenv-virtualenv directo al directorio de plugins de Pyenv por medio del siguiente comando:
1$ git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
Luego es necesario reiniciar la consola para que se habilite la instancia de pyenv-virtualenv
1$ exec "$SHELL"
Si se cuenta con un equipo Mac, se puede utilizar Homebrew para instalar este plugin. Utilizar este metodo es el recomendado si se instaló Pyenv por este método
1$ brew install pyenv-virtualenv
Luego de la instalación, será necesario seguir los pasos de configuración de consola con Pyenv
Finalmente, se agrega el comando para inicializar virtualenv dentro del documento .rc
de la consola de la siguiente manera:
1eval "$(pyenv virtualenv-init -)"
Esta configuración es de ayuda ya que hace que los ambientes se activen y se desactiven al momento de entrar o salir de directorios que contangan un archivo de .python-version
.
De cualquier manera, siempre es posible activar y desactivar de manera manual por medio del uso de
1pyenv activate <nombre> 2pyenv deactivate
Una vez instalado, virtualenv es muy intuitivo. para crear un ambiente se ejecuta un comando que incluye el numero de versión de Python junto con el nombre del directorio de la siguiente manera:
1$ pyenv virtualenv 2.7.10 ambiente-2.7.10
Esto crea un ambiente basado en la versión de Python 2.7.10 dentro del directorio raiz de pyenv de versiones ($(pyenv root)/versions
), dentro de un folder llamado ambiente-2.7.10
.
Se puede pasar solo un argumento a pyenv virtualenv
, lo cual hará que el ambiente se cree con la versión actual de Pyenv
1$ pyenv virtualenv ambiente-virtual
El comando pyenv virtualenvs
muestra los ambientes de virtualenv creados
1$ pyenv virtualenv ambiente-virtual-3.4.3 2$ pyenv virtualenvs 3 ambiente-virtual-3.4.3 (created from /home/yyuu/.pyenv/versions/3.4.3) 4 ambiente-2.7.10 (created from /home/yyuu/.pyenv/versions/2.7.10)
Se pueden eliminar instancias de virtualenv de tres maneras:
$(pyenv root)/versions
y $(pyenv root)/versions/{version}/envs
1pyenv uninstall ambiente-2.7.10
1pyenv virtualenv-delete ambiente-2.7.10
Es importante conocer el proceso de desinstalación para poder manejar adecuadamente los ambientes y poder "limpiar" la lista de ambientes para manejar únicamente los que son realmente necesarios.
Pyenv es una herramienta fundamental para desarrolladores que necesiten lidiar con la complejidad de manejar múltiples versiones de Python. De igual manera, es de mucha ayuda proveyendo aislamiento entre proyectos, simplifica el desarrollo eliminando estas complejidades, y mejora la compatibilidad. Independientemente si se es un desarrollador de Python principiante o experimentado, Pyenv aporta mucho valor al flujo de desarrollo y es una herramienta indispensable para mejorar la experiencia de programación y productividad de los desarrolladores.
Esperamos que hayas disfrutado de este artículo y hayas encontrado la información útil para tu desarrollo en Python. Te invitamos a explorar otros artículos en nuestro blog y descubrir más recursos para potenciar tu aprendizaje en Python y otros lenguajes. Si deseas llevar tu aprendizaje al siguiente nivel, te animamos a registrarte de forma totalmente gratuita en 4Geeks.com.