Configurar entorno virtual
Cuando instalamos Python3 obtenemos un único entorno global que es compartido por todos los proyectos y todo el código de Python. Si bien podríamos instalar Django y otros paquetes en el entorno global. Sin embargo sólo puedes instalar una versión en particular de cada paquete.
Cuidado
Las aplicaciones Python instaladas en el entorno global pueden entrar en conflicto potencialmente unas con otras (Ej. si dependen de diferentes versiones del mismo paquete).
Si instalamos Django dentro del entorno por defecto/global sólo podrás apuntar a una sóla versión de Django en la computadora. Esto puede ser un problema si quieres crear en el futuro nuevos sitios (usando las útilmas versiones de Django) pero manteniendo los sitios web que dependen de versiones más antiguas.
Como resultado, los desarrolladores experimentados normalmente configuran y ejecutan las aplicaciones Python dentro de entornos virtuales Python independientes.
graph TD
B(<img src="https://enidev911.github.io/fullstack-python/assets/img/base.png" width='28' />Python 3.9)
B---T[Entornos Virtuales]
T-->C(<img src="https://enidev911.github.io/fullstack-python/assets/img/venv1.png" width='28' />Python 3.9)
T-->D(<img src="https://enidev911.github.io/fullstack-python/assets/img/venv2.png" width='28' />Python 3.9)
T-->E(<img src="https://enidev911.github.io/fullstack-python/assets/img/venv3.png" width='28' />Python 3.9)
subgraph ''
C-->CD[Django==2.0]
D-->DD[Django==2.2]
E-->ED[Django==3.2]
end
Instalación de Software para crear entorno virtual
Después de instalar Python y pip, procedemos a instalar virtualenvwrapper (que incluye virtualenv) usando pip3:
sudo pip3 install virtualenvwrapper
A continuación se añade las siguientes líneas en el archivo de inicio del shell (éste es un archivo oculto .bashrc
o .zshrc
si usas zsh)
export WORKON_HOME=$HOME/.virtualenvs # (1)!
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export PROJECT_HOME=$HOME/Devel
source /usr/local/bin/virtualenvwrapper.sh #(2)!
-
La variable
WORKON_HOME
determina en qué directorio se deben crear los entornos virtuales de Python. -
Por último, se debe agregar esta línea al archivo
~/.bashrc
para especificar en dónde está ubicado el ejecutable de virtualenvwrapper.
Cómo crear entornos virtuales
Se debe ejecutar el comando mkvirtualenv
más el nombre del entorno virtual Python que queremos crear:
mkvirtualenv nombre_entorno
Cómo activar un entorno virtual
Para activar un virtualenv con Virtualenvwrapper solamente se necesita ejecutar el comando workon
más el nombre del virtualenv en la terminal:
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
Cómo eliminar entornos virtuales
Al ejecutar el comando rmvirtualenv
más el nombre del virtualenv, virtualenvwrapper se encarga de borrar el virtualenv con todas los paquetes que hayamos instalado en él:
rmvirtualenv nombre_entorno