Configurar un Entorno Virtual
Cuando instalamos Python3, se crea un único entorno global compartido por todos los proyectos y todo el código de Python. Aunque es posible instalar Django y otros paquetes en el entorno global, esto limita la posibilidad de gestionar múltiples versiones de cada paquete.
Cuidado
Los paquetes o bibliotecas instalados en el entorno global de Python pueden entrar en conflicto potencialmente entre sí, especialmente si dependen de diferentes versiones del mismo paquete. Esto puede ser un problema si quieres crear en el futuro nuevos sitios (usando la útima versión de un paquete) pero manteniendo proyectos que dependen de versiones más antiguas.
Como resultado, los desarrolladores experimentados suelen configuran y ejecutan las aplicaciones Python dentro de entornos virtuales Python independientes.
Paquetes para Configurar un Entorno Virtual
Una vez instalados Python y pip, contamos con paquetes que nos permiten configurar entornos virtuales. Algunos de estos paquetes vienen integrados con Python, como venv
, mientras que otros, como virtualenv
, deben instalarse por separado. Ambos nos facilitan la creación de entornos aislados para nuestros proyectos, evitando conflictos entre dependencias.
Administrar entornos con virtualenvwrapper
Este paquete es una extensión de virtualenv
que facilita la gestión y organiza todos tus entornos virtuales en un solo lugar. Para instalarlo, ejecuta el siguiente comando:
pip3 install virtualenvwrapper
sudo pip3 install virtualenvwrapper
Ahora, añade las siguientes líneas en el archivo de inicio del shell (.bashrc
o .zshrc
si usas zsh):
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
Comandos adicionales
virtualenvwrapper
agrega varios comandos útiles para gestionar entornos virtuales de manera más eficiente. Algunos de los más utilizados son:
mkvirtualenv
: Crea un nuevo entorno virtual.lsvirtualenv
: Muestra todos los entornos virtuales existentes.workon
: Permite activar fácilmente cualquier entorno virtual.rmvirtualenv
: Elimina un entorno virtual.deactivate
: Desactiva el entorno virtual activo.
1. Crear un entorno virtual
mkvirtualenv nombre_entorno
2. Activar un entorno virtual
workon django-test
created virtual environment CPython3.9.2.final.0-64 in 9185ms
creator CPython3Posix(dest=/home/enidev911/.virtualenvs/django-test, clear=False, no_vcs_ignore=False, global=False)
seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/enidev911/.local/share/virtualenv)
added seed packages: pip==24.1, setuptools==70.1.0, wheel==0.43.0
activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
virtualenvwrapper.user_scripts creating /home/enidev911/.virtualenvs/django-test/bin/predeactivate
virtualenvwrapper.user_scripts creating /home/enidev911/.virtualenvs/django-test/bin/postdeactivate
virtualenvwrapper.user_scripts creating /home/enidev911/.virtualenvs/django-test/bin/preactivate
virtualenvwrapper.user_scripts creating /home/enidev911/.virtualenvs/django-test/bin/postactivate
virtualenvwrapper.user_scripts creating /home/enidev911/.virtualenvs/django-test/bin/get_env_detail
3. Eliminar un entorno virtual
rmvirtualenv nombre_entorno