Fix Python – How to fix “ImportError: No module named …” error in Python?


Asked By – bodacydo

What is the correct way to fix this ImportError error?

I have the following directory structure:


And I am in the directory


Now if I type

python ./programs/

I instantly get

ImportError: No module named foo.tasks

The ./programs/ contains the following line:

from foo.tasks import my_function

I can’t understand why python won’t find ./foo/ – it’s there.

If I do it from the Python shell, then it works:

>>> from foo.tasks import my_function

It only doesn’t work if I call it via python ./programs/ script.

Now we will see solution for issue: How to fix “ImportError: No module named …” error in Python?


Python does not add the current directory to sys.path, but rather the directory that the script is in. Add /home/bodacydo/work/project to either sys.path or $PYTHONPATH.

This question is answered By – Ignacio Vazquez-Abrams

This answer is collected from stackoverflow and reviewed by FixPython community admins, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0