Python: ModuleNotFoundError: No module named 'X'
Cómo resolver el error ModuleNotFoundError en Python. Diferencias entre entornos virtuales, pip y el intérprete correcto.
¿Por qué ocurre?
Python no puede encontrar el módulo porque: - El paquete no está instalado en el entorno Python activo - Tienes varios intérpretes de Python y el paquete está en otro - El entorno virtual no está activado - Estás ejecutando el script con `python` pero instalaste con `pip3` (o viceversa) - Error tipográfico en el nombre del módulo
Solución paso a paso
1. Instalar el módulo faltante
pip install nombre-del-modulo# Si tienes Python 3 explícitamente
pip3 install nombre-del-modulo
# Verificar que se instaló
pip show nombre-del-modulo
2. Asegurarse de que pip y python usan el mismo intérprete
# Ver qué Python usa pip
pip --version
# pip 24.0 from /usr/lib/python3.12/... (python 3.12)# Ver qué Python ejecuta tu script
which python
python --version
# Solución: usar pip del intérprete correcto
python -m pip install nombre-del-modulo
3. Activar el entorno virtual
# Crear entorno virtual
python -m venv venv# Activar (Linux/macOS)
source venv/bin/activate
# Activar (Windows)
venv\Scripts\activate
# Ahora instalar
pip install nombre-del-modulo
4. En VS Code: seleccionar el intérprete correcto
Ctrl+Shift+P → "Python: Select Interpreter" → selecciona el intérprete del venv
5. En scripts de producción (Docker, CI)
# Instalar dependencias desde requirements.txt
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
Cómo evitarlo en el futuro
- Usa siempre `python -m pip install` en lugar de solo `pip install` para evitar confusiones de intérprete - Mantén un `requirements.txt` actualizado con `pip freeze > requirements.txt` - Activa el venv antes de ejecutar cualquier script del proyecto - En VS Code configura `python.defaultInterpreterPath` en `.vscode/settings.json`
¿Quieres que una IA te ayude? Genera el prompt perfecto para tu error:
Generador de Prompts