Advertisement
  1. Code
  2. Python

Entendiendo Entornos Virtuales en Python

Scroll to top
Read Time: 5 min

Spanish (Español) translation by Rafael Chavarría (you can also view the original English article)

En este tutorial, aprenderás sobre entornos virtuales. Aprenderás sobre la importancia de usar entornos virtuales en Python y cómo comenzar a usar entornos virtuales.

¿Qué es un Entorno Virtual?

Un entorno virtual es una herramienta para mantener espacio separado para un proyecto con sus dependencias y librerías en un lugar. Este entorno es específico para el proyecto particular y no interfiere con las dependencias de otros proyectos.

Por ejemplo, puedes trabajar en un proyecto X que está usando la versión 1.0 de la librería Z y también mantener al proyecto Y que está usando la versión 2.0 de la librería Z.

¿Cómo Funcionan los Entornos Virtuales?

La herramienta de entorno virtual crea una carpeta dentro del directorio del proyecto. Por defecto, la carpeta es llamada venv, pero puedes renombrarla también. Mantiene archivos Python y pip ejecutables dentro de la carpeta de entorno virtual. Cuando el entorno virtual es activado, los paquetes instalados después de eso son instalados dentro de la carpeta de entorno virtual de proyecto específico.

Comenzando Con VirtualEnv

Primero, asegúrate de que tienes pip instalado en tu sistema. Puedes instalar pip usando el siguiente comando:

Usando pip, instala la herramienta de entorno virtual.

Para comenzar usando virtualenv, necesitas inicializarlo y activarlo. Comencemos creando un nuevo directorio de proyecto Python PythonApp.

Navega al directorio de proyecto PythonApp e inicializa el entorno virtual tecleando el siguiente comando:

El comando de arriba configurará el entorno virtual par el proyecto PythonApp.

Setting Up Virtual EnvironmentSetting Up Virtual EnvironmentSetting Up Virtual Environment

Esto crea la carpeta llamado PythonAppVenv dentro del directorio de proyecto PythonApp. Mantiene los ejecutables Python y pip dentro de la carpeta de entorno virtual. Cualquier nuevo paquete instalado para el proyecto después de la activación del entorno virtual son colocados dentro de la carpeta de entorno virtual. Aquí está la estructura de la carpeta.

Virtual Environment Folder StructureVirtual Environment Folder StructureVirtual Environment Folder Structure

Para comenzar usando el entorno virtual, necesitas activarlo usando el siguiente comando:

Una vez activado, deberías poder ver el nombre PythonAppVenv sobre el lado izquierdo de la salida del nombre.

Virtual Environment ActivatedVirtual Environment ActivatedVirtual Environment Activated

Probemos instalar un nuevo paquete al proyecto PythonApp.

El nuevo paquete debería ser instalado en la carpeta de entorno virtual. Revisa la carpeta de entorno virtual dentro de lib/python2.7/site-packages y deberías poder encontrar el recién instalado paquete flask. Puedes aprender más sobre Flask en la página del proyecto.

Flask Package Installed in Virtual DirectoryFlask Package Installed in Virtual DirectoryFlask Package Installed in Virtual Directory

Una vez que terminaste con el entorno virtual, puedes desactivarlo usando el siguiente comando:

Más Fácil para Seguir Paquetes

Mientras trabajas con programas Python, instalas diferentes paquetes requeridos por el programa. Sigues trabajando, y la lista de paquetes instalados sigue apilándose. Ahora el tiempo llega cuando necesitas entregar el código Python al servidor de producción. Oops... Realmente no sabes qué paquetes tienes instalados para que funcione el programa.

Todo lo que puedes hacer es abrir el programa Python y revisar todos los paquetes que has importado en tu programa e instalarlos uno por uno.

Un entorno virtual proporciona un método más sencillo para dar seguimiento a los paquetes instalados en el proyecto. Una vez que has activado el entorno virtual, este proporciona la facilidad de congelar el estado actual de los paquetes del entorno.

Puedes lograr esto usando el siguiente comando:

El comando de arriba crea un archivo llamado requirements.txt que tiene detalles sobre los paquetes con versiones en el entorno actual. Aquí está cómo luce:

Requirements FileRequirements FileRequirements File

Ahora este archivo sería realmente de utilidad para desplegar el proyecto en una plataforma diferente ya que todas las dependencias del proyecto ya están a tu disposición en el archivo requirements.txt. Para instalar las dependencias del proyecto usando el archivo requirements.txt, ejecuta el siguiente comando:

virtualenvwrapper para Hacer las Cosas Más Fáciles

La herramienta virtualenv es realmente una bendición para desarrolladores. Pero se vuelve realmente complicado cuando lidias con más de un entorno virtual. Para administrar múltiples entornos virtuales, hay una extensión para la herramienta virtualenv llamada virtualenvwrapper.

virtualenvwrapper es un envoltorio alrededor de la herramienta virtualenv que proporciona la funcionalidad para administrar múltiples entornos virtuales.

Comencemos instalando virtualenvwrapper usando pip.

Una vez que has instalado virtualenvwrapper, necesitas establecer el directorio de trabajo en donde los entornos virtuales serán almacenados. Ejecuta el siguiente comando para establecer el directorio de trabajo para virtualenvwrapper.

El comando de arriba establece el directorio de trabajo para virtualenvwrapper a la carpeta .virtualenvs en el directorio de inicio.

Puedes hacer que los comandos virtualenvwrapper se ejecuten desde la terminal o agregar los comandos virtualenvwrapper al .bashrc.

Source virtualenvwrapperSource virtualenvwrapperSource virtualenvwrapper

Ahora los comandos serán accesibles en la terminal actual presionando la tecla Tab. Crea una nueva carpeta de proyecto llamada PythonProject. Navega al directorio de proyecto. Anteriormente, cuando usaste virtualenv, primero creaste el entorno virtual y después lo activaste. Usando virtualenvwrapper, puedes completar ambas tareas usando un solo comando.

El comando de arriba crea el entorno virtual y después lo activa.

Activate Virtual Environment Using virtualenvwrapperActivate Virtual Environment Using virtualenvwrapperActivate Virtual Environment Using virtualenvwrapper

Para desactivar el entorno virtual, necesitas teclear el comando deactivate.

Ahora supón en ciertos escenarios que necesitas cambiar entre los diferentes entornos virtuales en los que estás trabajando. virtualenvwrapper proporciona un método workon para cambiar entornos virtuales. El comando para cambiar el entorno virtual es:

En el comando de arriba, PythonV es el nombre del entorno virtual. Aquí hay una imagen en donde el comando workon es mostrado en acción:

Switching Virtual Environment Using workon CommandSwitching Virtual Environment Using workon CommandSwitching Virtual Environment Using workon Command

virtualenvwrapper también proporciona un comando para listar los entornos virtuales en tu entorno.

El comando de arriba muestra una lista de entornos virtuales que existen en el ambiente.

Listing Existing Virtual EnvironmentsListing Existing Virtual EnvironmentsListing Existing Virtual Environments

Para remover un entorno virtual existente, puedes usar el comando rmvirtualenv.

Remove the Virtual EnvironmentRemove the Virtual EnvironmentRemove the Virtual Environment

Hay un comando que crea un directorio de proyecto y su entorno virtual asociado. Navega a la terminal y ejecuta el siguiente comando:

El siguiente comando debería crear el proyecto y su entorno virtual asociado.

Create Project Directory and Associated Virtual DirectoryCreate Project Directory and Associated Virtual DirectoryCreate Project Directory and Associated Virtual Directory

Hay unos cuantos comando más que puedes usar en virtualenvwrapper. Puedes encontrar la lista de comandos disponibles tecleando el siguiente comando:

List of Commands Available in virtualenvwrapperList of Commands Available in virtualenvwrapperList of Commands Available in virtualenvwrapper

Concluyendo

En este tutorial, viste como comenzar usando entornos virtuales en Python. aprendiste la importancia de usar entornos virtuales y cómo funcionan. También echaste un vistazo a virtualenvwrapper, un envoltorio en la herramienta virtualenv para administrar múltiples entornos virtuales.

¿Alguna vez has usado entornos virtuales en Python? Déjanos saber tus ideas en los comentarios de abajo.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.