Skip to content

Entornos Virtuales de Python

Terminal window
$ pip list
Package Version
------------------------- ------------
aiohttp 3.9.1
aiosignal 1.3.1
altair 5.2.0
altgraph 0.17.2
annotated-types 0.6.0
anyio 4.2.0
appnope 0.1.3
asttokens 2.4.1
...
...
...
Terminal window
$ mkdir entornos
$ cd entornos
$ pip install faker #instalamos en global
$ pip list | grep Faker
Faker 20.1.0
# Tenemos instalada la versión 20.1.0 en global
Terminal window
$ python3 -m venv entorno_virtual
$ ls
entorno_virtual

Lo activamos

Terminal window
$ source entorno_virtual/bin/activate
**(entorno_virtual)** <▸> ~/W/py/entornos

Mostramos los paquetes instalados en este entorno

Terminal window
$ pip list
Package Version
------- -------
pip 24.0
(entorno_virtual)

Instalamos otra versión de faker

Terminal window
$ pip install faker==25.2
$ pip list

Salimos del entorno virtual

Terminal window
$ deactivate

Volvemos a entrar al entorno y congelamos los paquetes utilizados

Terminal window
$ source entorno_virtual/bin/activate
**(entorno_virtual)** <▸> ~/W/py/entornos
$ pip freeze > requirements.txt
$ cat requirements.txt

Creamos un script con python.

'''test.py'''
from faker import Faker
fake = 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_virtual

Restauramos 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.txt

Cuando creamos un entorno virtual con venv solemos llamar a la carpeta del entorno “venv”

$ python3 -m venv venv

Al utilizar git, podemos crear un archivo .gitignore que contenga entre otras cosas:

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

Ejemplo .gitignore para python:

https://raw.githubusercontent.com/github/gitignore/main/Python.gitignore