👋 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.