He revisado tantas páginas SO como pude y he intentado todo lo que encontré, pero ninguna ha sido exitosa. También revisé la página PEP con respecto a la importación y probé cada ejemplo, ninguno de los cuales funcionó.¿Cómo importar un módulo desde una carpeta al lado de la carpeta actual?
Tengo una carpeta de pruebas con pruebas de unidad en ellas, y necesito importar el módulo que deseo probar. Los módulos están en una carpeta llamada 'src' que está al lado de la carpeta src.
Las carpetas/archivos tienen el siguiente aspecto:
Project/
src/
stringbuilder.py
__init__.py
tests/
stringbuilder_test.py
__init__.py
main.py
__init__.py
He intentado todo lo que pude: la adición de __init__.py
a cada carpeta por lo que es un módulo que incluye la carpeta principal del proyecto.
import src.module_to_test
from ..src.module_to_test import function_to_test
from ..src import module_to_test
He probado todas las demás combinaciones, todas las cuales han fallado. Estoy empezando a pensar que debe haber algún problema con mi configuración o mi comprensión. Pensé que se suponía que era simple.
Si cometo algún error obvio por favor hágamelo saber.
from tests import stringbuilder
mensaje de error:
$ ./stringbuilder_test.py
Traceback (most recent call last):
File "./stringbuilder_test.py", line 14, in <module>
from tests import stringbuilder
ImportError: No module named tests
Se produce el mismo error de (pero las pruebas = src):
from src import stringbuilder
"src" o "tests"? ¿Puede darnos más detalles sobre la jerarquía de archivos y carpetas? – Nicolas
Se agregó un poco en la publicación para intentar mostrar la jerarquía. –
'from tests import stringbuilder' - solo tiene que mirar la estructura de árbol de arriba para ver por qué eso falla –