Home > Enterprise >  ModuleNotFoundError: No module named <name-of-module>
ModuleNotFoundError: No module named <name-of-module>

Time:12-18

This is my project structure:

maths/
     __init__.py
     trig.py
     coord.py
     pitch.py
models/
     __init__.py
     model.py

In model.py, I have:

import sys 
sys.path.append("../")

from maths.pitch import *

if __name__ == "__main__":
   # my routines

In pitch.py, I have:

from trig import calculate_distance_angles

When I run model.py, I'm getting the error:

  File "model.py", line 38, in <module>
    from maths.pitch import *
  File "../maths/pitch.py", line 9, in <module>
    from trig import calculate_distance_angles
ModuleNotFoundError: No module named 'trig'

How do I fix this?

CodePudding user response:

The error came from here: from trig import calculate_distance_angles. I suppose you are looking for your maths/trig.py file:

maths/
     __init__.py
     trig.py  <-- this one
     coord.py
     pitch.py
models/
     __init__.py
     model.py

On your sys.path, you may have this:

  • (all the original sys.path stuff)...
  • "../" (added at model.py)

But the maths model, as far as we can see, is not on sys.path. If that's true, you may have to modify the import as follows. This should work:

from maths.trig import calculate_distance_angles

CodePudding user response:

u should run it as a module python -m

  • Related