MATLAB Answers

Import matlab.engine error

37 views (last 30 days)
Tomasz Wyrowinski
Tomasz Wyrowinski on 14 Jul 2017
Answered: Isaac Lenton on 9 Aug 2018
In Matlab script I am trying to create a Python object that holds reference to the Matlab session. To do that I am passing shared engine name to Python object constructor and trying to find matlab instance using matlab.engine library. During library importing Python raises an exception:
>> py.importlib.import_module('task_monitor')
Error using enginesession>__init__ (line 8)
Python Error: EngineError: MATLAB process session cannot be initialized.
Error in __init__><module> (line 80)
_session = EngineSession()
Error in task_monitor><module> (line 1)
import matlab.engine
Error in __init__>import_module (line 37)
__import__(name)
Python class definition
import matlab.engine
class TaskMonitor:
def __init__(self, matlabName):
try:
self.matlabEngine = matlab.engine.connect_matlab(matlabName)
except matlab.engine.EngineError as err:
print('Could not connect to Matlab: ' + str(err))
Matlab script creating Python object
function init()
if ~matlab.engine.isEngineShared
matlab.engine.shareEngine;
end
sessionName = matlab.engine.engineName;
global monitor;
monitor = py.task_monitor.TaskMonitor(sessionName);
end
When I try to instantiate TaskMonitor in Python's console everything's fine and the object s being created. Is it somehow different while creating it from within Matlab console?
Looks like importing matlab.engine in Python script that's run from within Matlab is not working well.

  3 Comments

Marc-Antoine
Marc-Antoine on 19 Jul 2017
I have exactly the same issue! Help would be appreciated!
Christian Dreher
Christian Dreher on 3 Aug 2017
I have the same issue and would really appreciate any help.

Sign in to comment.

Answers (1)

Isaac Lenton
Isaac Lenton on 9 Aug 2018
I'm not sure about a safe workaround, but something that seems to work is removing the _session = EngineSession() line and corresponding cleanup line in the matlab.engine init script. Not sure how safe this is, but it seems to work.

  0 Comments

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!