Transitive Import Error: Modulenotfounderror: No Module Named '...'
Solution 1:
import utils in Python 3 is absolute import, Python looks module utils in sys.path.
When you run stats.py as a script Python adds the directory project/source/lib/ to sys.path. So import utils in the script works.
But when you run test_stats.py Python doesn't add project/source/lib/ to sys.path. So import utils doesn't work.
A way to overcome that is to use relative import: from . import utils. In stats.py it means: do not search sys.path, import module utils from the same directory as stats.py. But then you loose ability to run stats.py as a script. So move main code from stats.py to a separate script outside of lib/.
A slightly different solution is to move main code from stats.py to module __main__.py and execute the module using python -m lib (project/source/ must be in sys.path).
Post a Comment for "Transitive Import Error: Modulenotfounderror: No Module Named '...'"