Entornos Virtuales de Python
Entorno por defecto
Section titled “Entorno por defecto”$ pip listPackage Version------------------------- ------------aiohttp 3.9.1aiosignal 1.3.1altair 5.2.0altgraph 0.17.2annotated-types 0.6.0anyio 4.2.0appnope 0.1.3asttokens 2.4.1.........$ mkdir entornos$ cd entornos
$ pip install faker #instalamos en global$ pip list | grep FakerFaker 20.1.0
# Tenemos instalada la versión 20.1.0 en globalCreación entorno virtual
Section titled “Creación entorno virtual”$ python3 -m venv entorno_virtual$ lsentorno_virtualLo activamos
$ source entorno_virtual/bin/activate
**(entorno_virtual)** <▸> ~/W/py/entornosMostramos los paquetes instalados en este entorno
$ pip listPackage Version------- -------pip 24.0(entorno_virtual)Instalamos otra versión de faker
$ pip install faker==25.2
$ pip listSalimos del entorno virtual
$ deactivateVolvemos a entrar al entorno y congelamos los paquetes utilizados
$ source entorno_virtual/bin/activate
**(entorno_virtual)** <▸> ~/W/py/entornos
$ pip freeze > requirements.txt
$ cat requirements.txtCreamos un script con python.
'''test.py'''from faker import Fakerfake = Faker()
print(fake.name())¿Cuál es la utilidad de requirements.txt?
Section titled “¿Cuál es la utilidad de requirements.txt?”Ahora podemos compartir nuestro proyecto (github u otro ordenador), subiendo únicamente los archivos requirements.txt y el script que hemos creado (test.py).
Para simular esta acción, vamos a borrar nuestro entorno.
$ deactivate
$ rm -rf entorno_virtualRestauramos el entorno que teníamos
$ python3 -m venv entorno2
$ source entorno2/bin/activate # Lo activamos(entorno2)
# Instalamos las dependencias que teníamos$ pip install -r requirements.txtCuando creamos un entorno virtual con venv solemos llamar a la carpeta del entorno “venv”
$ python3 -m venv venvAl utilizar git, podemos crear un archivo .gitignore que contenga entre otras cosas:
# Environments.env.venvenv/venv/ENV/env.bak/venv.bak/Ejemplo .gitignore para python:
https://raw.githubusercontent.com/github/gitignore/main/Python.gitignore