Edison Ibáñez d9cd5bf63b pyenv 4 years ago
..
img 8eae524f90 WIP 4 years ago
readme.org d9cd5bf63b pyenv 4 years ago

readme.org

Pyenv

¿Por qué usar pyenv?

¿Por qué no utilizar la versión de Python del sistema?

    [[file:img/Getting-Started-With-pyenv_Watermarked.jpg]] Si usas GNU/Linux o Mac ya tienes una versión de Python disponible
  • No siempre es la ultima versión ya sea de Python2 o Python3
  • No se puede tener diferentes versión de Python2 o Python3
  • No se puede probar las novedades o características de la ultima versión de
  • Python

which python

python -V

Para instalar una librería se debe usar sudo pip install pkg, esto puede resultar problemático si otro usuario necesita una versión diferente del mismo paquete.

¿Qué pasa con un administrador de paquetes?

Si usar sudo pip puede resultar problemático lo mas lógico es usar el gestor de paquetes de nuestro sistema operativo ~apt, yum, zipper, pacman, apk, etc.~ Pero esto también puede llegar a ser in problema debido a la versión de los paquetes que están disponibles en los repositorios oficiales.

    Tomando en cuenta lo antes mencionado que estamos buscando al tratar de gestionar diferentes versiones de Python.
  • Instalar Python en $HOME de cada usuario
  • Instalar múltiples versiones de Python
  • Especifique la versión exacta de Python que desea
  • Cambiar entre las versiones instaladas

Instalar pyenv

Dependencias

pyenv compila cada versión desde el código o fuentes por lo que es necesario tener todas las dependencias necesarias en neutro sistema, esta información se la puede encontrar en la Documentación oficial de Python.

Ubuntu/Debian


sudo apt-get install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev \
libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl

Fedora/CentOS/RHEL


sudo yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite \
sqlite-devel openssl-devel xz xz-devel libffi-devel

openSUSE


zypper in zlib-devel bzip2 libbz2-devel libffi-devel \
libopenssl-devel readline-devel sqlite3 sqlite3-devel xz xz-devel

Alpine


apk add libffi-dev ncurses-dev openssl-dev readline-dev \
tk-dev xz-dev zlib-dev

MS Windows

Instalación

Usando el Gestor de Paquetes.

pyenv-installer

pyenv originalmente no tiene soporte para MS Windows, sin embargo existe un proyecto que llego esta herramienta al sistema de la ventana y se puede encontrar en el siguiente enlace: https://github.com/pyenv-win/pyenv-win En lagunas distribuciones GNU/Linix se puede encontrar un paquete oficial de ~pyenv~ por lo que la instalación se la puede hacer usando el gestor de paquetes de nuestro sistema (apt, yum, zipper, apk o pacman). Podemos hacer uso del instalador con el siguiente comando.


curl https://pyenv.run | bash
    Dependiendo del método de instalación tendremos disponibles los siguientes complementos:
  • pyenv: La aplicación de pyenv
  • pyenv-virtualenv: Complemento para gestionar entornos virtuales
  • pyenv-update: Complemento para actualizar pyenv
  • pyenv-doctor: Complemento para verificar que pyenv y sus dependencias se
  • encuentran instaladas
  • pyenv-which-ext: Complemento para buscar automáticamente los comandos del
  • sistema.

Ahora nos falta cargar de forma automáticamente pyenv


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

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

Usar pyenv pata Instalar Python

Ahora que ya tenemos disponible y cargado pyenv en nuestro sistema podremos empezar a instalar la versión de Python que necesitemos.

Listar las versiones disponibles de Python 2

pyenv install --list | grep " 2\.[678]"

pyenv install --list | grep " 3\.[678]"

pyenv install --list | grep "jython"

pyenv install --list

CC=clang pyenv install -v 3.7.1

Si se encuentra algún problema durante la instalación se puede consultar el siguiente enlace https://github.com/pyenv/pyenv/wiki/Common-build-problems

Ubicación de la Instalación

Como se menciono anterior pyenv trabaja con el código fuente de cada versión de Python se encenta en la siguiente ubicación.


ls -l ~/.pyenv/versions/

Para eliminar una versión instalada se puede simplemente eliminar dicha versión de la ubicación donde se instalo.


rm -rf ~/.pyenv/versions/3.7.1

o ejecutando el comando que ofrece pyenv


pyenv uninstall 3.7.1

Usando nuestra nueva version de Python

Primero debemo comprbar las versiones disponibles.


pyenv versions

El simobolo * nos indica que version de python se encontra activa. Ahora si confirmamos la ruta del binario obtendremos lo siguiente.


which python

Si queremos cambiar la version por defecto Python para nuestro usuario podemos hacerlo de la siguiente manera.


pyenv global 3.7.1

Para regresar a la version de nuestro sistema basta con ejecutar.


pyenv global system

Comandos de pyenv

install


pyenv install 3.7.1

versions


pyenv versions

which


pyenv which pip

global


pyenv global 3.7.1

local


pyenv local 3.7.1

shell


pyenv shell 3.7.1

Especificar una versión de Python

Con pyenv se puede especificar una Versión de Python para un proyecto, basta con ir a la carpeta que contiene dicho proyecto y ejecutar.


pyenv local 3.7.1

Esto crea un archivo llamado ~.python-version~ que contiene la versión que especificamos. Con esto cada vez que trabajemos con ese proyecto estaremos usando la versión de Python que especificamos con anterioridad.

Usando Entornos Virtuales con pyenv

Crear Entornos Virtuales

Podemos tener Varios Entornos Virtaules de Python con una version especifica del lenguage, usando el subcomando virtualenv seguido de la version de python y el nombre del entorno virtual.


pyenv virtualenv <python_version> <virtualenv>

pyenv virtualenv 3.7.1 meetup

Activando nuestro Entorno Virtual

Una vez creado el entorno solo nos falta especificar el entorno virtual en nuestro proyecto.


pyenv local <virtualenv>

pyenv local meetup

Enlaces externos