Crear un entorno virtual en Python utilizando Pyenv

Photo by Chris Ried on Unsplash

Crear un entorno virtual en Python utilizando Pyenv

馃憢 Hola. Despu茅s de casi un a帽o sin publicar en el blog quiero retomarlo nuevamente y compartir con ustedes principalmente temas de desarrollo web que es lo que realmente me apasiona.

Hoy les voy a compartir como crear un entorno virtual de Python utilizando Pyenv.

Que es Pyenv

Pyenv en es una herramienta que nos permite instalar diferentes versiones de Python y cambiar entre ellas seg煤n los requerimientos del proyecto con el cual necesitamos trabajar.

Por ejemplo, podr铆amos instalar la versi贸n 3.6 para un proyecto determinado y de la misma forma instalar la versi贸n 3.10 para otro proyecto.

A trav茅s de una serie de comandos muy sencillos que veremos a continuaci贸n podremos instalar y cambiar de versi贸n seg煤n las necesidades de nuestro proyecto.

Instalar Pyenv (Ubuntu)

Instalamos una serie de requerimientos necesarios antes de instalar Pyenv.

$ sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

Descargamos y ejecutamos el script de instalaci贸n

$ curl https://pyenv.run | bash

A帽adimos lo siguiente a nuestro .bashrc o .zshrc

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

Reiniciamos nuestra shell

$ source ~/.zshrc

Por 煤ltimo validamos la instalaci贸n

$ pyenv --version 
pyenv 2.2.4

Instalar diferentes versiones de Python

Ahora que tenemos Pyenv instalado en nuestro sistema podemos comenzar a instalar las versiones de Python que necesitemos.

Para ver un listado de todas las versiones de Python disponibles ejecutamos:

$ pyenv install --list

Para filtrar las versiones desde la 3.6.0 hasta la 煤ltima versi贸n de 3.7 ejecutamos el siguiente comando:

$ pyenv install --list | grep " 3\.[67]" 
3.6.0
3.6-dev
3.6.1
3.6.2
3.6.3
3.6.4
...
...
3.7.10
3.7.11
3.7.12

Ahora que podemos ver las versiones de Python disponibles vamos a instalar la versi贸n 3.6.0

$ pyenv install -v 3.6.0

Esperamos un poco dependiendo de la velocidad de la conexi贸n y en pocos segundos deber铆amos tener la versi贸n 3.6.0 instalada.

Instalamos una segunda versi贸n, por ejemplo 3.9.9

$ pyenv install -v 3.9.9

Si queremos ver las versiones de Python instaladas ejecutamos:

$ pyenv versions 
3.6.0
3.9.9

Especificar una versi贸n de Python

Ya tenemos varias versiones de Python instaladas en nuestro sistemas, ahora debemos especificar con cual versi贸n vamos a trabajar.

Podemos establecer una versi贸n global para todo el sistema:

$ pyenv global 3.9.9

Si listamos las versiones disponibles podemos ver que las versi贸n * 3.9.9 est谩 especificada como la versi贸n global para el sistema.

$ pyenv versions
3.6.0
* 3.9.9 (set by /home/roylan/.pyenv/version)

Para comprobarlo ejecutamos el interprete de Python

$ python
Python 3.9.9 (main, Mar  7 2022, 16:48:18) 
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.

Versiones locales

Pyenv es incluso mucho m谩s flexible 馃憤 y nos permite especificar una versi贸n local para un directorio en espec铆fico. Vamos a suponer que estamos creando un proyecto nuevo llamado ecomerce y necesitamos trabajar con la versi贸n 3.9.9.

$ mkdir -p proyecto/ecomerce
$ cd proyecto/ecomerce
$ pyenv local 3.9.9

Este 煤ltimo comando establece la versi贸n 3.9.9 como la predeterminada en este directorio y todos sus hijos. Si listamos el directorio con el comando ls -la podemos ver el archivo .python-version el cual contiene la versi贸n de Python especificada como local.

$ pyenv versions
3.6.0
* 3.9.9 (set by /home/roylan/proyecto/ecomerce/.python-version)

Crear un entorno virtual con python

Ya que sabemos instalar y seleccionar una versi贸n de Python para un proyecto en espec铆fico es hora de crear el entorno virtual.

Creamos un entorno virtual para nuestro futuro ecomerce

$ pyenv virtualenv 3.9.9 ecomerce

Aqu铆 estamos creando un entorno virtual llamado ecomerce con la versi贸n 3.9.9 de Python.

Necesitamos activar el entorno virtual para instalar todos los requerimientos del proyecto.

$ pyenv activate ecomerce
(ecomerce) $

Si queremos desactivar el entorno virtual es tan sencillo como:

$ pyenv deactivate

馃挭 Por 煤ltimo podemos especificar un entorno virtual como local. De esta forma cada ves que accedamos a la capeta ecomerce el entorno virtual se activar谩 autom谩ticamente y al salir se desactivar谩 igualmente.

$ pyenv local ecomerce

Conclusiones

Como hemos podido ver, Pyenv es una herramienta muy potente y flexible que podemos utilizar para trabajar con diferentes versiones de Python y entornos virtuales en nuestros proyecto.

Pyenv tiene muchas opciones las cuales puedes ver con el comando pyenv --help. Aqu铆 nos hemos centrado en los comando necesarios para trabajar con los entornos locales.

Espero que esta peque帽a gu铆a te sea de utilidad.

Did you find this article valuable?

Support Roylan Suarez Reyes by becoming a sponsor. Any amount is appreciated!