Unable to use Python matlab.engine in a Docker container

13 vues (au cours des 30 derniers jours)
Eric Hamer
Eric Hamer le 29 Déc 2016
Commenté : Vadim Nemytov le 31 Août 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 commentaires
Eric Hamer
Eric Hamer le 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 le 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.

Connectez-vous pour commenter.

Réponses (3)

Marc Lasch
Marc Lasch le 5 Juin 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 le 3 Jan 2017
Does MATLAB itself run with the Docker container, for example:
matlab -nodesktop -r 'disp hello; exit'

Eric Hamer
Eric Hamer le 4 Jan 2017
Modifié(e) : Walter Roberson le 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 commentaires
Guillaume Garreau
Guillaume Garreau le 23 Juin 2017
hello, Have you found the solution?
Vadim Nemytov
Vadim Nemytov le 31 Août 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

Connectez-vous pour commenter.

Catégories

En savoir plus sur Introduction to Installation and Licensing dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by