Un entorno virtual (o virtual environment) es un espacio aislado donde instalamos las librerías de un proyecto sin afectar a otros ni al sistema operativo. Esto es fundamental porque:
requirements.txt
.En la carpeta de tu proyecto (crear la segunda carpeta proyecto2
) para practicar el concepto anterior y analizar el contenido creado, ejecutá:
python -m venv .venv
Esto crea una carpeta llamada .venv
que contiene:
Scripts/
: ejecutables (incluye python
y pip
del entorno).lib/
: librerías instaladas solo en este entorno.Podés cambiar el nombre .venv
por otro (ej.: env
), pero .venv
es un nombre estándar y recomendado.
.\.venv\Scripts\activate
Con el entorno activo, podés instalar FastAPI y cualquier dependencia sin afectar al sistema:
pip install fastapi uvicorn
Si luego corrés:
pip list
Vas a ver solo las librerías instaladas en ese entorno, no las globales.
Cuando termines de trabajar, podés salir del entorno ejecutando:
deactivate
La terminal vuelve a la normalidad y cualquier instalación de pip
afectará al Python global.
Para que otra persona pueda replicar tu entorno, creá un archivo con la lista de dependencias:
pip freeze > requirements.txt
Ejemplo de requirements.txt
:
aiohappyeyeballs==2.6.1
aiohttp==3.12.14
aiosignal==1.4.0
annotated-types==0.7.0
anyio==4.9.0
attrs==25.3.0
certifi==2025.7.14
charset-normalizer==3.4.2
chess==1.11.2
click==8.2.1
colorama==0.4.6
contourpy==1.3.1
cycler==0.12.1
distro==1.9.0
fastapi==0.116.1
fonttools==4.56.0
frozenlist==1.7.0
h11==0.16.0
httpcore==1.0.9
httptools==0.6.4
httpx==0.28.1
idna==3.10
jiter==0.10.0
kiwisolver==1.4.8
matplotlib==3.10.1
multidict==6.6.3
numpy==2.2.4
openai==1.97.1
packaging==24.2
pandas==2.3.2
pillow==11.1.0
playsound==1.2.2
propcache==0.3.2
pydantic==2.11.7
pydantic_core==2.33.2
pygame==2.6.1
pyparsing==3.2.2
python-dateutil==2.9.0.post0
python-dotenv==1.1.1
pytz==2025.2
PyYAML==6.0.2
requests==2.32.4
seaborn==0.13.2
simpleaudio==1.0.4
six==1.17.0
sniffio==1.3.1
starlette==0.47.3
tqdm==4.67.1
typing-inspection==0.4.1
typing_extensions==4.14.1
tzdata==2025.2
urllib3==2.5.0
uvicorn==0.35.0
watchfiles==1.1.0
websockets==15.0.1
yarl==1.20.1
Luego, otro desarrollador (o vos mismo en otra compu) puede instalar exactamente esas versiones con:
pip install -r requirements.txt
Además de venv
, existen otras opciones para manejar entornos:
pip
+ venv
en un solo comando.Para este curso, usamos .venv
+ pip
, porque es lo más estándar y simple.
Con esto ya podés crear, activar, desactivar y compartir entornos virtuales de forma profesional.