필터 지우기
필터 지우기

starting docker mathworks/matlab:r2023b from Python fails with licensing issue while running matlab from the docker's shell runs well

조회 수: 28 (최근 30일)
I am using docker built from mathworks/matlab:r2023b and am running the following Python code to start the engine.
self.matlab_engine: MatlabEngine = matlab.engine.start_matlab()
This fails to start Matlab with error:
matlab.engine.EngineError: Unable to launch MVM server: License Error: Licensing shutdown
.
self.matlab_engine: MatlabEngine = matlab.engine.start_matlab()
File "/usr/local/lib/python3.10/dist-packages/matlab/engine/__init__.py", line 128, in start_matlab
eng = future.result()
File "/usr/local/lib/python3.10/dist-packages/matlab/engine/futureresult.py", line 67, in result
return self.__future.result(timeout)
File "/usr/local/lib/python3.10/dist-packages/matlab/engine/matlabfuture.py", line 87, in result
handle = pythonengine.getMATLAB(self._future)
matlab.engine.EngineError: Unable to launch MVM server: License Error: Licensing shutdown
env. variable is set during docker run with
-e MLM_LICENSE_FILE=1234@lic_server.abc.company.com
If I run Matlab directly from the command line is works fine.
Any idea what is missing in my enviironment?

답변 (2개)

Prabhakar
Prabhakar 2023년 10월 13일
Hi Shlomi
I suspect that the environment variable "MLM_LICENSE_FILE" is not being honored in the mathworks/matlab:r2023b container due to the presence of this file /opt/matlab/R2023b/licenses/license_info.xml
This is a known issue, and we are actively working towards releasing a newer version of the container image which should fix it for you.
In the mean time, could you try the following to work around the issue:
MatlabEngine = matlab.engine.start_matlab('-licmode file')
  댓글 수: 3
Prabhakar
Prabhakar 2023년 12월 11일
The mathworks/matlab:r2023b containers have already been updated on DockerHub to include the fix to this issue.
Shown below are the steps I took to verify that this works now:
$ docker run -it --rm -e MLM_LICENSE_FILE=1234@lic_server.abc.company.com --entrypoint /bin/bash mathworks/matlab:r2023b
matlab@0e3b71b68603:~/Documents/MATLAB$ export LD_LIBRARY_PATH=/opt/matlab/R2023b/bin/glnxa64
matlab@0e3b71b68603:~/Documents/MATLAB$ python -m pip install matlabengine
Defaulting to user installation because normal site-packages is not writeable
Collecting matlabengine
Downloading matlabengine-23.2.1.tar.gz (18 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: matlabengine
Building wheel for matlabengine (pyproject.toml) ... done
Created wheel for matlabengine: filename=matlabengine-23.2.1-py3-none-any.whl size=16895 sha256=6759b5317c2da7fc8e6c65124849bdaeda3b1ac7c0e046585b7866c5bb5410e3
Stored in directory: /home/matlab/.cache/pip/wheels/a8/33/f3/84a8299d4675c04ea1a01073f8e347e6c8498ad8789201e220
Successfully built matlabengine
Installing collected packages: matlabengine
Successfully installed matlabengine-23.2.1
matlab@0e3b71b68603:~/Documents/MATLAB$ python
Python 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import matlab.engine
>>> eng = matlab.engine.start_matlab()
>>> eng.sqrt(4.0)
2.0
>>>

댓글을 달려면 로그인하십시오.


Prabhakar
Prabhakar 2023년 12월 11일
mathworks/matlab:r2023b has been updated to include the fix to this issue.
Verify it by:
Pulling the latest image from dockerhub:
docker pull mathworks/matlab:r2023b
Run container with MLM_LICENSE_FILE specified, and run MATLAB Engine for Python:
$ docker run -it --rm -e MLM_LICENSE_FILE=1234@lic_server.abc.company.com --entrypoint /bin/bash mathworks/matlab:r2023b
matlab@0e3b71b68603:~/Documents/MATLAB$ export LD_LIBRARY_PATH=/opt/matlab/R2023b/bin/glnxa64
matlab@0e3b71b68603:~/Documents/MATLAB$ python -m pip install matlabengine
Defaulting to user installation because normal site-packages is not writeable
Collecting matlabengine
Downloading matlabengine-23.2.1.tar.gz (18 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: matlabengine
Building wheel for matlabengine (pyproject.toml) ... done
Created wheel for matlabengine: filename=matlabengine-23.2.1-py3-none-any.whl size=16895 sha256=6759b5317c2da7fc8e6c65124849bdaeda3b1ac7c0e046585b7866c5bb5410e3
Stored in directory: /home/matlab/.cache/pip/wheels/a8/33/f3/84a8299d4675c04ea1a01073f8e347e6c8498ad8789201e220
Successfully built matlabengine
Installing collected packages: matlabengine
Successfully installed matlabengine-23.2.1
matlab@0e3b71b68603:~/Documents/MATLAB$ python
Python 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import matlab.engine
>>> eng = matlab.engine.start_matlab()
>>> eng.sqrt(4.0)
2.0
>>>

카테고리

Help CenterFile Exchange에서 Call MATLAB from Python에 대해 자세히 알아보기

제품


릴리스

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by