La programación en Python es una tarea emocionante y versátil que ha ganado un gran reconocimiento en la comunidad de desarrollo de software. Sin embargo, a medida que tu proyecto se vuelve más grande y complejo, gestionar las dependencias de tu código puede volverse una tarea desafiante. Es en este punto donde un entorno virtual de Python (o virtualenv) se convierte en una herramienta esencial. En este artículo, te explicaremos qué es un entorno virtual en Python, para qué sirve y cómo puedes crear uno.
- ¿Qué es un entorno virtual de Python?
- ¿Por qué es necesario un entorno virtual de Python?
- ¿Cómo crear un entorno virtual de Python?
¿Qué es un entorno virtual de Python?
Las aplicaciones Python utilizan paquetes y módulos que no forman parte de la biblioteca estándar. En ocasiones, las aplicaciones necesitarán una versión específica de una biblioteca, por lo que es posible una instalación de Python no cumpla con los requisitos de cada aplicación.
La solución a este problema es crear un entorno virtual, un directorio autónomo que contenga una instalación de Python, para una versión particular de Python además de varios paquetes adicionales.
Por lo tanto, un entorno virtual en Python es una herramienta que te permite crear un ambiente aislado y autónomo en tu sistema para trabajar en proyectos de Python de manera independiente. Esto significa que puedes tener múltiples entornos virtuales en tu máquina, cada uno con sus propias dependencias y versiones de Python, sin que entren en conflicto entre sí.
En esencia, un entorno virtual actúa como un contenedor para tus proyectos de Python, permitiéndote instalar y gestionar bibliotecas y paquetes específicos para cada proyecto sin afectar el entorno global de Python de tu sistema. Esto es especialmente útil cuando trabajas en varios proyectos con diferentes requerimientos de dependencias.
Un entorno virtual (entre otras cosas):
- Se utiliza utiliza para contener un intérprete de Python específico y las bibliotecas de software y binarios necesarios para respaldar un proyecto (biblioteca o aplicación). Por defecto, estarán aislados del software de otros entornos virtuales y de las bibliotecas e intérpretes de Python instalados en el sistema operativo.
- Está contenido en un directorio, convencionalmente llamado venv o .venv dentro del directorio del proyecto, o en un directorio contenedor para muchos entornos virtuales, como ~/.virtualenvs.
- No queda registrado en sistemas de control de código como Git.
- Está considerado como desechable: debería ser sencillo eliminarlo y recrearlo desde cero. No se coloca ningún código del proyecto dentro del directorio del entorno.
- No se considera móvil ni copiable: simplemente recrea el mismo entorno en la ubicación de destino del proyecto.
¿Por qué es necesario un entorno virtual de Python?
La necesidad de entornos virtuales en Python se vuelve evidente cuando consideramos los siguientes escenarios:
- Gestión de Dependencias: Diferentes proyectos pueden requerir versiones específicas de bibliotecas o paquetes. Al usar un entorno virtual, puedes asegurarte de que cada proyecto tiene acceso a las versiones de dependencias que necesita sin afectar otros proyectos.
- Evitar Conflictos: En un sistema sin Entornos Virtuales, las dependencias pueden entrar en conflicto si dos proyectos requieren versiones diferentes de la misma biblioteca. Un Entorno Virtual previene estos conflictos al aislar los entornos.
- Portabilidad: Puedes compartir tu código con otros desarrolladores o desplegarlo en otros sistemas sin preocuparte por las dependencias globales de Python, lo que hace que tu proyecto sea más portable y fácil de distribuir.
¿Cómo crear un entorno virtual de Python?
Crear un entorno virtual en Python es un proceso sencillo.
Lo primero de todo es tener Python instalado. Si necesitas instalar Python en tu equipo, puedes seguir los pasos de nuestro post ¿Cómo instalar Python 3 en Linux, Mac y Windows?
A continuación te mostramos los pasos básicos para crear un entorno virtual.
Paso 1: Instalar virtualenv
(si no está instalado)
Antes de crear un entorno virtual, asegúrate de tener la herramienta virtualenv
(o venv
) instalada en tu sistema. Puedes instalarlo usando pip
, el gestor de paquetes de Python:
pip install virtualenv
Paso 2: Crear un nuevo entorno virtual
Dirígete a la carpeta de tu proyecto y crea un entorno virtual ejecutando el siguiente comando:
virtualenv nombre_del_entorno
Reemplaza nombre_del_entorno con el nombre que desees para tu entorno virtual (Normalmente, venv o .venv).
Si utilizas el nombre .venv el directorio suele mantenerse oculto y, por lo tanto, fuera de alcance, pero con un nombre que explica por qué existe el directorio.
También se puede utilizar el siguiente comando:
python3 -m venv /path/to/new/virtual/environment
Paso 3: Activar el entorno virtual
Una vez que hayas creado el entorno virtual, actívalo utilizando los siguientes comandos según tu sistema operativo:
Windows:
nombre_del_entorno\Scripts\activate.bat
MacOS o Linux:
source nombre_del_entorno/bin/activate
O también:
. nombre_del_entorno/bin/activate
Cuando se activa el entorno virtual, el mensaje del terminal de comandos suele cambiar para mostrar qué entorno virtual está utilizando, modificándose también el entorno, por lo que si ejecuta python --version
obtendrá la versión concreta que se está utilizando.
Paso 4: Instalar dependencias
Una vez activado tu entorno virtual, puedes usar pip
para instalar las bibliotecas y paquetes específicos que tu proyecto necesita:
pip install nombre_del_paquete
Paso 5: Desactivar el entorno virtual
Cuando hayas terminado de trabajar en tu proyecto y quieras salir del entorno virtual, simplemente ejecuta los siguientes comandos según tu sistema operativo:
Windows:
deactivate.bat
MacOs o Linux:
deactivate
Referencias
- Python | Creation of virtual environments (Inglés) – Crear un entorno virtual de Python 3
- Python | Virtual Environments and Packages (Inglés) – Entornos virtuales y paquetes de Python 3
Conclusión
Un entorno virtual de Python es una herramienta fundamental para cualquier desarrollador de Python. Te permite gestionar de manera eficiente las dependencias de tus proyectos, evitando conflictos y garantizando la portabilidad de tu código. Aprender a crear y usar entornos virtuales te ayudará a mantener tu flujo de trabajo de desarrollo Python organizado y libre de problemas. ¡Así que no dudes en incorporar esta poderosa herramienta a tu caja de herramientas de desarrollo!