MATLAB Answers

Unable to use Python matlab.engine in a Docker container

106 views (last 30 days)
Eric Hamer
Eric Hamer on 29 Dec 2016
Answered: Marc Lasch on 5 Jun 2018
I am attempting to install Matlab in a Docker container where I will be using the Python matlab.engine class. I am able to install Matlab silently and do a silent activation. These both succeed. I am also able to install this class via python setup.py install.
After this, when I bring up python in my container, I am able to import matlab.engine without issue. When I then try to execute: matlab.engine.start_matlab(), I get the following errors:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/site-packages/matlab/engine/__init__.py", line 112, in start_matlab
eng = future.result()
File "/usr/local/lib/python2.7/site-packages/matlab/engine/futureresult.py", line 68, in result
return self.__future.result(timeout)
File "/usr/local/lib/python2.7/site-packages/matlab/engine/matlabfuture.py", line 87, in result
handle = pythonengine.getMATLAB(self._future)
matlab.engine.EngineError: Unable to launch MVM server: License Error
Why is this happening? I do have a valid license and this was specified when I did the install.
Thanks,
Eric Hamer
Quantiacs

  2 Comments

Eric Hamer
Eric Hamer on 3 Jan 2017
When I run matlab -nodesktop -r 'disp hello; exit', the system response is "bash: matlab: command not found"
Please advise.
Walter Roberson
Walter Roberson on 3 Jan 2017
At installation time on Linux, MATLAB offers to create a link in /usr/local/bin . That link might not have been created, or /usr/local/bin itself might not happen to be on your path.

Sign in to comment.

Answers (3)

Marc Lasch
Marc Lasch on 5 Jun 2018
You need a ".lic" license file which should be copied to
.matlab/R2018a_licenses/
in your user's homefolder. However I had a problem with that license file because of the network interface in my container (which was host0). The license file is bound to a mac address in the machine. The virtual Ethernet interface of the container was not recognized by matlab (at least in a systemd-nspawn container).

  0 Comments

Sign in to comment.


Bo Li
Bo Li on 3 Jan 2017
Does MATLAB itself run with the Docker container, for example:
matlab -nodesktop -r 'disp hello; exit'

  0 Comments

Sign in to comment.


Eric Hamer
Eric Hamer on 4 Jan 2017
Edited: Walter Roberson on 5 Jan 2017
When I execute this: /usr/local/R2016b/bin/matlab -nodesktop -r 'disp hello; exit'
I get this as the response:
MATLAB is selecting SOFTWARE OPENGL rendering.
root@cff09122de9a:/install# -------------------------------------
Error: Activation cannot proceed. You may either:
1. Set an X11 display, and restart the activation process
2. Use the silent activation feature
3. Activate using the license center
------------------------------------------------------------------
While still in the container, I repeated the silent activation and it succeeded, but when I ran the above command, the result was the same.
Please advise.
Eric

Products

Community Treasure Hunt

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

Start Hunting!