Python (Español)/Virtual environment (Español)
virtualenv es una herramienta de desarrollo en Python escrita por Ian Bicking y usada para crear entornos aislados para Python, en los que es posible instalar paquetes sin interferir con otros virtualenvs ni con los paquetes de Python del sistema.
Este artículo explica la instalación del paquete virtualenv y de virtualenvwrapper, un complemento para virtualenv diseñado por Dough Hellmann que facilita enormemente el uso de virtualenv. Además, se explica a continuación el uso más básico de ambas herramientas.
Entornos virtuales
virtualenv es una herramienta diseñada para poder desarrollar proyectos en Python trabajando con diferentes versiones de paquetes que, de otra forma, entrarían en conflicto. Por ejemplo, si un programador quiere desarrollar dos proyectos con diferentes versiones de Django, no es posible tener las dos versiones instaladas en el directorio de bibliotecas de Python del sistema, a no ser que se utilice una herramienta como virtualenv. Con virtualenv, este programador crearía dos entornos aislados, e instalaría cada versión de Django en uno de los entornos.
virtualenvwrapper, por su parte, proporciona varios comandos para hacer más cómodo el uso de virtualenv desde la consola.
Aparte de estas dos herramientas, a partir de la versión 3.3 de Python, la biblioteca estándar incluye venv como un módulo integrado. venv implementa una API similar a la de virtualenv.
Virtualenv
virtualenv es compatible con Python 2.6+ y Python 3.x. Ver Python (Español)#Python 3 para conocer las diferencias entre las diferentes versiones de Python.
Installation
Instala python-virtualenv, o python2-virtualenv[enlace roto: package not found] para la versión compatible con Python 2.
Uso básico
Un caso de uso sencillo, sin usar virtualenvwrapper, podría ser el siguiente:
- Crear un virtualenv:
$ virtualenv mi_env
- Activar el virtualenv:
$ source mi_env/bin/activate
- Instalar un paquete (p.ej. Django) en el virtualenv:
(mi_env)$ pip install django
- Trabajar en el proyecto.
- Salir del virtualenv:
(mi_env)$ deactivate
Virtualenvwrapper
virtualenvwrapper permite una interacción más cómoda con los virtualenvs, proporcionando varias órdenes útiles para crear, activar y eliminar virtualenvs. Este paquete es compatible tanto con python-virtualenv como con python2-virtualenv[enlace roto: package not found].
Instalación
Instalar el paquete python-virtualenvwrapper desde los repositorios oficiales.
Una vez instalado, es necesario crear un directorio para albergar los virtualenvs:
mkdir $HOME/.virtualenvs
Después hay que añadir las siguientes líneas a ~/.bashrc
:
export WORKON_HOME=~/.virtualenvs source /usr/bin/virtualenvwrapper.sh
Para que estas líneas se activen, es necesario reiniciar la sesión, o ejecutar
source ~/.bashrc
~/.bashrc
antes de source /usr/bin/virtualenvwrapper.sh
:
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3Esto se debe a que virtualenvwrapper necesita ser ejecutado por Python 3, aunque puede crear virtualenvs para Python 2.7 sin problemas.
Uso básico
- Ver la lista de virtualenvs instalados:
$ workon
- Crear un nuevo virtualenv:
$ mkvirtualenv -p /usr/bin/python2.7 mi_env
- Activar el virtualenv:
$ workon mi_env
- Instalar un paquete (p.ej. Django) en el virtualenv:
$ (mi_env)$ pip install django
- Trabajar en el proyecto
- Salir del virtualenv:
(mi_env)$ deactivate
Ver también
- Página de virtualenv en PyPi
- Tutorial de virtualenv (en inglés).
- Página de Doug Hellmman sobre virtualenvwrapper[enlace roto 2021-11-15] (en inglés).