Jaki jest poprawny sposób naprawienia tego błędu ImportError?Jak naprawić błąd "ImportError: No module named ..." w Pythonie?
Mam następującą strukturę katalogów:
/home/bodacydo
/home/bodacydo/work
/home/bodacydo/work/project
/home/bodacydo/work/project/programs
/home/bodacydo/work/project/foo
I jestem w katalogu
/home/bodacydo/work/project
Teraz gdybym wpisać
python ./programs/my_python_program.py
I natychmiast dostać
ImportError: No module named foo.tasks
./programs/my_python_program.py
zawiera następujący wiersz:
from foo.tasks import my_function
Nie mogę zrozumieć, dlaczego Python nie znajdzie ./foo/tasks.py
- to tam.
Jeśli robię to z powłoki Python, to działa:
python
>>> from foo.tasks import my_function
To tylko nie działa, jeśli zgłoszę go za pośrednictwem python ./programs/my_python_program.py
skryptu.
Więc jaki jest sens posiadania __init__.py w folderze głównym? Wydaje się, że nie ma to żadnego sensu, jeśli edytujesz sys.path lub pythonpath. –
@Editor: '__init __. Py' wskazuje tylko, że katalog powinien być traktowany jako pakiet, gdy jego rodzic jest albo' sys.path' lub sam jest pakietem. –
Ponadto sprawdź uprawnienia do folderu. To był problem w moim przypadku. – SidJ