MATLAB Answers

How to solve error during Python Matlab integration using pymatlab?

20 views (last 30 days)
Meera Girijan
Meera Girijan on 1 May 2016
Edited: wei du on 4 Jun 2016
I am trying to call the matlab code written using python. After importing pymatlab, the next command session=pymatlab.session_factory() throws an error saying in line 51 an unexpected keyword argument "path" is encountered. I checked for online solutions where they asked me to change line 51 which was
session = MatlabSession(path=basedir,bufsize=output_buffer_size)
to :
session = MatlabSession(basedir,bufsize=output_buffer_size)
Even after doing this I am receiving the same error. Can anyone help me with this? least suggest another method for python matlab integration?


Meera Girijan
Meera Girijan on 1 May 2016
Tried that. The same error "__init__() got an unexpected keyword argument path" is displaying at the same line 51.

Sign in to comment.

Answers (2)

wei du
wei du on 4 Jun 2016
Edited: wei du on 4 Jun 2016
I'm using Matlab R2012a 32Bit on Windows 10. I tried pymatlab and it works after some modification in
1. I set matlab_root to "C:\Program Files (x86)\MATLAB\R2012a" when I call pymatlab.MatlabSession.
2. I found out I have to change matlab directory to the dll_path of matlab to make sure the engine can be opened correctly. So I add codes below in pymatlab-0.2.3-py2.7.egg\pymatlab\ After that, I can change the directory back.
3. If you want to use "session_factory", be careful of the path detected in "session_factory", it will be passed to "" and you need to make sure libeng.dll and libmx.dll can be found in the path of "".
dll_path = join(matlab_root, 'bin', 'win32')
self.engine = CDLL('libeng.dll') = CDLL('libmx.dll')


Sign in to comment.

Sign in to answer this question.

Translated by