Explicación de los entornos virtuales de Python

La herramienta virtualenv crea un entorno de Python aislado (en forma de directorio) que está completamente separado del entorno de Python de todo el sistema. W...

¿Qué es VirtualEnv?

La herramienta entorno virtual crea un entorno de Python aislado (en forma de directorio) que está completamente separado del entorno de todo el sistema. Entorno de Python.

Lo que esto realmente significa es que cualquier configuración, paquetes de terceros, etc. del entorno de todo el sistema no aparecen en el entorno virtual, por lo que es casi como si tuviera una instalación limpia de Python.

Esto es útil cuando desea tener un borrón y cuenta nueva para sus proyectos. Digamos que tiene bota versión 2.7.0 instalada en los paquetes del sitio, pero el proyecto que acaba de iniciar necesita la versión 2.38.0 más reciente . Dado que no puede tener ambas versiones instaladas en todo el sitio, necesita un entorno de Python que mantenga las dependencias separadas. Para esto es la herramienta virtualenv.

¿Por qué es útil VirtualEnv? {#por quéesvirtualenvútil}

Python se diferencia de otros lenguajes más amigables para la empresa (como Java) en que las bibliotecas de terceros se cargan y usan en todo el sistema, en lugar de proyecto por proyecto. Esto puede convertirse en un problema si dos proyectos diferentes requieren versiones diferentes del mismo paquete.

Entonces, para cada proyecto que inicie, también puede crear un nuevo entorno virtual para asegurarse de que todas las dependencias instaladas no afecten a los otros proyectos en su computadora.

A medida que crea más y más proyectos y los implementa, pronto se dará cuenta de lo importante que es tener separaciones estrictas entre proyectos.

¿Cómo se usa VirtualEnv?

Los entornos virtuales son fáciles de crear (y destruir), solo requieren el paquete virtualenv, que se puede instalar con:

1
$ pip install virtualenv

Para crear un nuevo entorno virtual, probablemente querrá hacer algo como esto:

1
$ virtualenv --no-site-packages myapp

Este comando creará la siguiente estructura de directorios:

  • miaplicación/
    • bin/
    • include/
    • lib/

El uso del indicador --no-site-packages crea un entorno virtual que se asemeja a una instalación limpia de Python y que no contiene paquetes de terceros, sino solo los paquetes estándar de Python.

Los tres subdirectorios enumerados anteriormente contienen todos los ejecutables, dependencias y paquetes de Python necesarios para desarrollar y ejecutar programas de Python. También incluye algunas herramientas útiles como pip y easy_install.

Y finalmente, para usar un entorno virtual en particular, actívelo con:

1
2
3
Scotts-Computer:Projects: scott$ cd myapp/
Scotts-Computer:myapp scott$ source bin/activate
(myapp)Scotts-Computer:myapp scott$ 

Tenga en cuenta que esto antepone su símbolo del sistema con el nombre de virtualenv ((myapp) en este caso), lo que indica que su entorno Python actual es el entorno virtual "myapp".

Ahora, cada vez que ejecute un script de Python, se usarán el ejecutable, la configuración y los paquetes de Python del entorno virtual en lugar del ejecutable global de Python.

Para dejar de usar el entorno virtual, simplemente desactívelo ejecutando:

1
2
(myapp)Scotts-Computer:myapp scott$ deactivate
Scotts-Computer:myapp scott$

Conclusión

En Python, y en casi todos los demás lenguajes de programación, es importante tener control total sobre su entorno para saber exactamente qué está pasando con su código y cómo replicarlo en cualquier máquina.

Los entornos virtuales lo ayudan a hacer esto al separar las configuraciones globales y el código del código local.