¿Cuál es la forma correcta de corregir este error ImportError?Cómo reparar el error "ImportError: No module named ..." en Python?
que tienen la siguiente estructura de directorios:
/home/bodacydo
/home/bodacydo/work
/home/bodacydo/work/project
/home/bodacydo/work/project/programs
/home/bodacydo/work/project/foo
Y estoy en el directorio
/home/bodacydo/work/project
Ahora si escribo
python ./programs/my_python_program.py
instante me sale
ImportError: No module named foo.tasks
El ./programs/my_python_program.py
contiene la siguiente línea:
from foo.tasks import my_function
no puedo entender por qué Python no encontrará ./foo/tasks.py
- que está ahí.
Si lo hago desde la terminal de Python, entonces funciona:
python
>>> from foo.tasks import my_function
Sólo no funciona si la llamo través python ./programs/my_python_program.py
guión.
Entonces, ¿cuál es el punto de tener __init__.py en la carpeta raíz? Parece que no sirve para nada si edita sys.path o pythonpath. –
@Editor: '__init __. Py' solo indica que el directorio debe tratarse como un paquete, cuando su elemento primario está en' sys.path' o es un paquete en sí mismo. –
Además, verifique los permisos en la carpeta. Ese fue el problema en mi caso. – SidJ