Desarrollando con Python y Pyenv (part 1)

Deiv Guerrero
3 min readFeb 1, 2018

--

background-fragment & python-logo

TL;DR: El uso de Pyenv como gestor de versiones de Python puede ayudarnos con las dependencias conflictivas de nuestros proyectos.

Los sistemas operativos basados en *nix por definición, cuentan con una versión preinstalada de Python (muy probablemente la versión 2.x), por lo que si desarrollas sobre Python 2.x (que deberías estar actualizando tus proyectos a Python 3.x) solucionas el conflicto de paquetes utilizando Virtualenv, ¿pero si quisieras interactuar con python 3.x? fácilmente buscas un tutorial de cómo instalar python 3 y no morir en el intento, pero tras reiniciar tu equipo te percatas que algunos programas empiezan a fallar.

Es aquí donde Pyenv entra en acción, ya que es una herramienta sencilla para gestionar distintas versiones de Python, no sólo entre 2.x o 3.x, sino también versiones de Anaconda, Ironpython, Jython, Micropython, Miniconda, Pypy, Pyston y Stackless.

¿Cómo instalar Pyenv?

La instalación de Pyenv es muy sencilla, basta con visitar su repositorio pero de manera práctica:

En Mac OS es recomendada su instalación a través de homebrew:

$ brew update# Paquetes que se recomiendan tener instalados
$ brew install openssl readline xz
$ brew install pyenv# Agregamos inicializador de pyenv
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
# Reiniciamos la shell para apreciar los cambios
$ exec "$SHELL"

En Ubuntu tendríamos que realizar lo siguiente:

# Paquetes que deben estar instalados
$ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev git
# Descargar e Ejecutar Instalador
$ curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
# Agregamos variables de Entorno
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
# Agregamos inicializador de pyenv
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
# Reiniciamos la shell para apreciar los cambios
$ exec "$SHELL"

Nota: Los pasos desde # Agregamos variables de Entorno funciona perfectamente en sistemas que cuenta con bash como AMI de Amazon Linux.

Guía de Uso

Una vez instalado pyenv podemos verificar la versión de pyenv instalada ejecutando pyenv --version.

Listamos las versiones que tenemos instaladas ejecutando pyenv versionsy observaremos que sólo contamos con la versión que trae nuestro sistema operativo *system marcada con un *, indicando que es la versión establecida en nuestro entorno.

Para conocer las versiones disponibles a instalar ejecutamos pyenv install --list .

Dentro de la lista de versiones disponibles encontramos la versión 3.6.4, para instalarla ejecutamos pyenv install 3.6.4.
Nota: El tiempo de instalación dependerá de tu conexión a internet y recursos del equipo.

Si nuevamente ejecutamos pyenv versions podremos observar que disponemos de la versión 3.6.4

Enlaces de Referencia

--

--

Deiv Guerrero

Web Developer #VueJS & #python /Configured web-server / Analista de Requerimientos / El desarrollo y la actualización no es una opción, es una necesidad.