您好我想使用 python 在网络上部署一个 matlab 应用程序。有没有办法做到这一点。我已根据数学作品网站上的文档将我的应用程序转换为 jar 文件(java 类)。有人可以指出我前进的正确方向吗
1 回答
您的 Matlab 代码被打包为 Jars 的事实在这里可能没有太大帮助,至少对于纯 Python 没有帮助。
有几种方法可以获取用 Java 编写的代码并将其公开给 Python。
杰通
如果您愿意给 Jython 一个机会,这可能是为您的 jar 提供 Django 接口的一种非常简单的方法。
基本上,您将编写一个普通的 Django 应用程序,并使用 Jython 与您的 Jars 一起工作。假设您不依赖于 CPython,这可能是两全其美的。
Java 兼容接口
在 CPYTHON 上,以下任一项目都将帮助您使用 Jar 文件中的代码:
分离过程:
如果您有一个用 Matlab(实际上是任何语言)编写的独立程序,您可以将其作为 Django 应用程序的子进程执行。您将在 Django 中查看一个简单的 Web 表单,该表单允许您提交值作为此过程的输入,然后在您的视图中(在验证表单之后)您会执行以下操作:
command = "mymatlabprogram.exe %s"%(arg1,)
process = subprocess.Popen(command.split())
stdout, stderr = process.communicate()
假设有效,您可以从标准输出中提取答案或从标准错误中提取错误消息。您可以提供由该进程创建的图像等。一旦这样的事情起作用,您可以查看 celeryd 以从您的网络应用程序中提取子进程内容。
使用单独进程的优点是您可以将 Matlab 代码中的错误与破坏您的 Web 应用程序隔离开来,反之亦然。缺点是您必须序列化所有内容并在客户端浏览器和您的 Web 应用程序之间、Web 应用程序和可执行文件之间以及返回给客户端之间多次工作。