Dos proyectos pueden necesitar versiones distintas de una misma biblioteca. Si instalas todo en el mismo Python global, tarde o temprano una actualización útil para un proyecto puede romper otro.
Un entorno virtual crea un espacio aislado de paquetes para un proyecto. pip instala dentro del Python que esté activo en ese momento.
Diagnosticar si un paquete se instaló en el mismo intérprete con el que se ejecuta el proyecto.
Visualiza cada proyecto con su propia caja de herramientas
Tu código fuente sigue siendo código normal. Lo que cambia es qué intérprete y qué paquetes acompañan a ese proyecto.
Modelo mental: proyecto A → su entorno → sus paquetes. Proyecto B → otro entorno → otros paquetes. No necesitas duplicar Python entero; el entorno crea la separación necesaria para las dependencias.
Crear el entorno es preparar la caja, no activarla
En una terminal, situado en la carpeta del proyecto, el comando habitual es:
python -m venv .venv
.venv es solo un nombre de carpeta muy usado. El comando crea el entorno, pero tu terminal todavía puede seguir apuntando al Python anterior.
Por eso crear y activar son dos pasos diferentes.
Activar cambia qué Python y qué pip encontrará tu terminal
La activación depende del sistema y de la terminal. Después de activarlo, una comprobación muy útil es preguntar qué ejecutable estás usando:
python -c "import sys; print(sys.executable)"
La ruta debería apuntar al entorno del proyecto. Ese dato es más fiable que confiar únicamente en que el prompt muestre (.venv).
Instala después de activar, y verifica antes de culpar al código
Con el entorno correcto activo, python -m pip install paquete instala el paquete para ese intérprete.
python -m pip install requests
Usar python -m pip hace explícita la relación: «ejecuta el pip que pertenece a este Python». Si aparece un ModuleNotFoundError después de instalar algo, comprueba primero que estás ejecutando el mismo Python donde lo instalaste.
Diagnostica el entorno, no el código
py -m venv .venv .\.venv\Scripts\Activate.ps1 python -m pip install requests
python3 -m venv .venv source .venv/bin/activate python -m pip install requests
No memorices rutas de activación para otros sistemas. Usa el bloque que corresponde a tu entorno.
python -c "import sys; print(sys.executable)"python -m pip show requestsTu terminal muestra estas rutas:
sys.executable → /proyecto/.venv/bin/python pip show → paquete instalado en /usr/local/lib/python...
¿Cuál es la causa más probable?
Comprobar diagnóstico
El paquete se instaló para otro intérprete. Activa el entorno correcto y usa python -m pip install ... desde ese mismo Python. No cambies los imports de tu programa para “arreglarlo”.
No guardes el entorno como si fuera parte de tu código
La carpeta .venv suele ser grande y reproducible. Normalmente se excluye del control de versiones. Lo importante es conservar una lista reproducible de dependencias, no copiar la instalación completa.
Más adelante conocerás herramientas y formatos para fijar dependencias. Por ahora, quédate con la separación entre código del proyecto y entorno donde se ejecuta.
La competencia aquí es saber dónde estás instalando
- Crear un entorno y activarlo son acciones distintas.
pipinstala para un intérprete concreto.- Ante un paquete «desaparecido», compruebas primero
sys.executabley el pip asociado.
Esos comandos se consultan según tu sistema. Lo que sí debes entender es el modelo: proyecto → entorno → intérprete → paquetes.