Unable to use Python matlab.engine in a Docker container

33 Ansichten (letzte 30 Tage)
Eric Hamer
Eric Hamer am 29 Dez. 2016
Kommentiert: Vadim Nemytov am 31 Aug. 2022
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 Kommentare
Eric Hamer
Eric Hamer am 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 am 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.

Melden Sie sich an, um zu kommentieren.

Antworten (3)

Marc Lasch
Marc Lasch am 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).

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

Eric Hamer
Eric Hamer am 4 Jan. 2017
Bearbeitet: Walter Roberson am 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
  2 Kommentare
Guillaume Garreau
Guillaume Garreau am 23 Jun. 2017
hello, Have you found the solution?
Vadim Nemytov
Vadim Nemytov am 31 Aug. 2022
on Llinux:
  1. before entering the container type: xauth list $DISPLAY
  2. launch your container as with this command: docker run --env DISPLAY --net=host -v /tmp/.X11-unix -it localhost:5000/vn_centos7:R2020a (where the last part is your own IMAGE_NAME:IMAGE_TAG_NAME. for me IMAGE_NAME is localhost:5000/vn_centos7 and IMAGE_TAG_NAME is R2020a)
  3. when you enter the container make sure that this file exists: ~/.Xauthority If it doesn't exist, create it via this command: touch ~/.Xauthority
  4. inside the container type: xauth add LONG_OUTPUT_FROM_THE_FIRST_COMMAND_ABOVE
  5. container should xauth and other things pre-installed. At least on Centos7 docker image these are needed to handle GUI (for e.g. R2022a): yum install -y xauth gtk2 at-spi2-atk alsa-lib

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Call MATLAB from Python finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by