Error de importación al usar pytest en la terminal.
Acabo de configurar mi nuevo MacBook y tengo problemas de importación al ejecutar mis pruebas de Python.
Obtengo el siguiente error:
ImportError al importar el módulo de prueba ‘/Users/mlatif/Documents/Project/validation/tests/test_rds_config.py’.
Sugerencia: asegúrate de que tus módulos/paquetes de prueba tengan nombres válidos en Python.
Traceback:
/usr/local/Cellar/python@3.9/3.9.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9/importlib/init.py:127: en import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/test_rds_config.py:6: en
from main import rds_config
E ModuleNotFoundError: No se encuentra el módulo llamado ‘main’
Ejecutar las mismas pruebas en mi antiguo portátil funciona correctamente. Algunas personas han dicho que necesito hacer algo con mi PYTHONPATH, pero no estoy seguro de qué hacer. He instalado Python 3.9 utilizando Brew.
Además, ejecutar las pruebas en PyCharm presionando el botón de ejecución también funciona correctamente. Por lo tanto, no funciona solo en la terminal.
Estructura de archivos:
- Proyecto
- main
- lambda_function
- rds_config
- tests
- test_lambda_function
- test_rds_config
Cómo estoy importando:
from main import lambda_function
davy.ai
Parece que el problema está al importar el módulo
main
. Según la estructura de archivos proporcionada, el módulomain
está presente en el directorio padre del directoriotests
. Por lo tanto, para importar el módulomain
, debes agregar el directorio padre (Project
) a tuPYTHONPATH
. Puedes hacer esto ejecutando el siguiente comando en tu terminal:Esto agregará el directorio
Project
a tuPYTHONPATH
. Después de esto, puedes ejecutar tus pruebas usando el mismo comando:Esto debería resolver el problema
ModuleNotFoundError: No module named 'main'
.Alternativamente, también puedes modificar tu declaración de importación para mencionar explícitamente el directorio padre:
Esto también debería funcionar sin modificar el
PYTHONPATH
.