Calling python modules gives ModuleNotFoundError.

25 views (last 30 days)
I have inherited some MATLAB code which calls some python scripts (authored by the same person, but they are no longer with the organization). I am wondering if the error I am getting is due to some missing dependencies and/or files/directories? Upon executing the script I get the following errors:
Error using <frozen importlib>_find_and_load_unlocked (line 973)
Python Error: ModuleNotFoundError: No module named 'theta_controller'
Error in <frozen importlib>_find_and_load (line 991)
Error in <frozen importlib>_gcd_import (line 1014)
I put the theta_controller.py in the same folder as the main MATLAB script doing the calling.
Are there any obvious steps I have missed so python scripts can be called by MATLAB?
I am a beginner in using MATLAB, Python, and MacOS so any help would be appreciated.
  2 Comments
James Kondash
James Kondash on 18 Apr 2022
I believe the script calls the python module as follows:
theta = py.importlib.import_module('theta_controller');
The theta_controller.py file is in the same directory as the parent MATLAB script I am trying to run.
Maybe I'm missing some dependencies, environments, and/or path specifications?

Sign in to comment.

Answers (1)

Al Danial
Al Danial on 21 Apr 2022
Does the MATLAB code change directories before calling the import command?
If you interactively invoke the import in a fresh MATLAB session as you've shown, with
>> theta = py.importlib.import_module('theta_controller')
do you also get the errors?
Will the module import correctly in Python? Open a Python session and try
import theta_controller

Products


Release

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!