Qual è il modo corretto per correggere questo errore ImportError?Come risolvere l'errore "ImportError: No module named ..." in Python?
Ho la seguente struttura di directory:
/home/bodacydo
/home/bodacydo/work
/home/bodacydo/work/project
/home/bodacydo/work/project/programs
/home/bodacydo/work/project/foo
E sono nella directory
/home/bodacydo/work/project
Ora, se digito
python ./programs/my_python_program.py
ho immediatamente ottenere
ImportError: No module named foo.tasks
Il ./programs/my_python_program.py
contiene la seguente riga:
from foo.tasks import my_function
non riesco a capire il motivo per cui Python non troverà ./foo/tasks.py
- è lì.
Se lo faccio dal guscio Python, allora funziona:
python
>>> from foo.tasks import my_function
E 'solo non funziona se lo chiamo via python ./programs/my_python_program.py
script.
Quindi qual è il punto allora di avere __init__.py nella cartella principale? Sembra non servire se si modifica sys.path o pythonpath. –
@Editor: '__init __. Py' indica solo che la directory deve essere trattata come un pacchetto, quando il suo genitore è in' sys.path' o è esso stesso un pacchetto. –
Controllare inoltre i permessi sulla cartella. Questo era il problema nel mio caso. – SidJ