馃憢 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.