Python (Español)/Virtual environment (Español)
virtualenv es una herramienta usada para crear un espacio de trabajo aislado para una aplicación Python. Esto tiene varias ventajas como la habilidad para instalar módulos localmente, exportar un entorno de trabajo y ejecutar un programa de Python en este entorno.
Descripción general
Un entorno virtual es un directorio dentro del cual algunos binarios y scripts de shell son instalados. Los binarios incluyen python para ejecutar scripts y pip para instalar otros módulos en el entorno. También hay scripts de shell (uno para bash, csh, y fish) para activar el entorno. Esencialmente, un entorno virtual imita un sistema completo instalado de Python y todo de los módulos deseados sin interferir con algún sistema en el que podría ejecutarse la aplicación.
En 2017, Pipenv fue publicado como una herramienta que gestiona todas las funciones mencionadas anteriormente: la gestión de entornos virtuales de intérpretes de Python, las dependencias de paquetes, su activación y el bloqueo reproducible de versiones en Pipfiles.
Instalación
Python 3.3+ viene con un módulo llamado venv. Para aplicaciones que requieren una version antigua de Python, virtualvenv debe ser usado.
Paquetes
Instale uno de estos paquetes para usar un entorno virtual Python:
- Python 3.3+: python
- Python 3: python-virtualenv
Para Pipenv:
- Python 3: python-pipenv
Uso
Todas estas tres herramientas usan un flujo de trabajo similar.
Creación
Utiliza venv o virtualenv para crear el entorno virtual dentro del directorio de tu proyecto. Asegúrate de excluir el directorio venv del control de versiones--bastará con ejecutar pip freeze para reconstruirlo.
venv
virtualenv
Use virtualenv para Python 3, disponible en python-virtualenv
$ virtualenv envname
Activación
Use uno de los scripts de shell proprocionados para activar y desactivar el entorno. Este ejemplo asume que bash es usado.
$ source envname/bin/activate (envname) $
Una vez dentro del entorno virtual, los módulos se pueden instalar con pip y los scripts se pueden ejecutar normalmente.
Para salir del entorno virtual, ejecute la función proporcionada por bin/activate:
(envname) $ deactivate
Versiones de Python
Por defecto, los entornos virtuales se crean utilizando Python del sistema. El binario bin/python es simplemente un enlace simbólico al python del sistema:
$ ls -l envname»/bin/python lrwxrwxrwx 1 foo foo 15 ene 29 18:48 «envname»/bin/python -> /usr/bin/python
Si desea usar una versión diferente de Python dentro del entorno virtual, puede usar la opción -p/--python de virtualenv:
$ virtualenv -p 3.8 envname $ ls -l envname/bin/python lrwxrwxrwx 1 foo foo 18 ene 29 18:48 «envname»/bin/python -> /usr/bin/python3.8
También se puede usar pypy3 Usado:
$ virtualenv -p pypy3 envname
virtualenvwrapper
virtualenvwrapper permite una interacción más natural con tus entornos virtuales mediante la línea de comandos, al exponer varios comandos útiles para crear, activar y eliminar entornos virtuales. Este paquete es un envoltorio para python-virtualenv.
Instalación
Instale el paquete python-virtualenvwrapper y agrega las siguientes líneas a tu ~/.bashrc:
~/.bashrc
export WORKON_HOME=~/.virtualenvs source /usr/bin/virtualenvwrapper.sh
La línea source /usr/bin/virtualenvwrapper.sh puede causar cierta ralentización al iniciar una nueva sesión de shell. Para solucionar esto, prueba con source /usr/bin/virtualenvwrapper_lazy.sh, que cargará virtualenvwrapper la primera vez que se llamen sus funciones.
Vuelve a abrir la consola para aplicar los cambios. El directorio WORKON_HOME se creará automáticamente.
Uso básico
Consulta https://virtualenvwrapper.readthedocs.io/en/latest/ para obtener información sobre su uso (y sus capacidades de extensión).
Crea el entorno virtual (todas las opciones de línea de comandos, excepto -a, -i, -r y -h, se pasan directamente a `virtualenv`, por lo que puedes usar -p para seleccionar la versión de Python):
$ mkvirtualenv envname
Activa el entorno virtual:
$ workon envname
Instala algún paquete dentro del entorno virtual (por ejemplo, Django):
(envname) $ pip install django
Una vez finalizado el proceso, desactiva el entorno virtual:
(envname) $ deactivate
Pipenv
pipenv permite una mejor gestión de las interacciones con la CLI al proporcionar un único programa que realiza todas las funciones de las herramientas anteriores.
Instalación
Instala el paquete python-pipenv.
Uso básico
Todos los comandos se pueden ejecutar en la carpeta del proyecto, y pipenv reconocerá la situación específica: si existe un entorno virtual en el directorio, lo localizará y se ejecutará en el intérprete virtual específico cuando se ejecute pipenv.
Más información en [1], [2], [3].