Python Matlab引擎在Docker中的使用

ht4b089n  于 2022-11-24  发布在  Matlab
关注(0)|答案(1)|浏览(308)

我有一个python脚本,在里面用matlab.engine()执行一个matlab脚本。这在我的机器上可以工作,但是我不能把它停靠。
dockerfile将需要两个图像-Matlab和Python。Matlab需要使用许可证文件进行初始化,然后执行Matlab文件夹中的python安装脚本。之后,python脚本将能够访问Matlab。
任何关于创建dockerfile的帮助都将不胜感激。或者任何关于我在哪里可以找到这样的东西的线索。谢谢。
已尝试使用以下内容:
Python代码:

import matlab.engine
    from flask import Flask
    
    @app.route("/matlab")
    def matlab_execute():
        eng = matlab.engine.start_matlab()
        eng.myscript(nargout=0)
        return "success"
    if __name__ == "__main__":        
        app.run()

停靠文件:

FROM mathworks/matlab:r2021a as matlab_image
    WORKDIR /matlab
    FROM python:3.8
    COPY --from=matlab_image /matlab /
    COPY myscript.m /
    COPY  py_script.py /
    WORKDIR /
    RUN pip install FLASK
    CMD [ "python", "./py_script.py" ]

但是当我运行这个容器的时候,我得到了“没有名为matlab的模块”。我怎么能把matlab证书传递给它呢?

sqyvllje

sqyvllje1#

official MathWorks docker container Dockerfile is available on GitHub. Both a base image and dependencies image you can use are available on Dockerhub.有关如何使用该映像的说明可以在两个存储库中找到。
几个注意事项:
1.传入许可证的首选机制是使用许可证服务器并通过Docker运行时标志-eMLM_LICENSE_FILE=[PORT]@[LICENSE_SERVER_ADDRESS]传入环境变量。您也可以传入文件,但需要使用许可证服务器,因为Docker容器无法给予激活许可证所需的一致flexlm主机ID。
1.新的MPM工具使得创建MATLAB Docker容器变得非常容易。事实上,修改容器以包含所需的python将非常简单。然后,您可以将代码复制到映像中正确的位置以运行它,代替提供的入口点,或者您可以装载一个带有代码的卷,以便在该环境中积极地开发它。

相关问题