使用python在Web上部署matlab应用程序

kgqe7b3p  于 2023-03-03  发布在  Matlab
关注(0)|答案(1)|浏览(193)

嗨我想部署一个matlab应用程序在网络上使用python。有没有办法做到。我已经把我的应用程序转换成jar文件(java类)根据文档的数学作品网站。有人能指出我在正确的方向继续前进

kq4fsx7k

kq4fsx7k1#

Matlab代码被打包成Jars的事实在这里可能没有多大帮助,至少对于纯Python来说是这样。
有几种方法可以将用Java编写的代码公开给Python。

杰松

如果您愿意给予Jython,这可能是一种为jar提供Django接口的非常简单的方法。
基本上你可以编写一个普通的Django应用程序,同时使用Jython来原生地处理你的Jars。假设你不依赖CPython,这可能是两全其美的。
Django-Jython

Java兼容性接口

在CPYTHON上,以下项目之一将帮助您处理Jar文件中的代码:

  • JCC:创建 Package Jar文件的Python扩展模块
  • JPype:提供一个API,用于运行JVM并从Python调用在JVM中运行的代码。

单独过程:

如果你有一个用Matlab(任何语言)编写的独立程序,你可以把它作为Django应用程序的子进程来执行。你可以在Django中查看一个简单的web表单,它允许你提交值作为这个进程的输入,然后在你的视图中(验证表单后)你可以做如下操作:

command = "mymatlabprogram.exe %s"%(arg1,)
process = subprocess.Popen(command.split())
stdout, stderr = process.communicate()

假设这起作用了,你可以从stdout中提取答案,或者从stderr中提取错误消息,你可以提供一个由该进程创建的图像,等等。一旦这样的事情起作用了,你就可以查看celeryd,从你的web应用程序中提取子进程的东西。
使用单独进程的优点是可以隔离Matlab代码中的错误,避免破坏Web应用程序,反之亦然。缺点是必须序列化所有内容,并在客户端浏览器和Web应用程序之间、Web应用程序和可执行文件之间以及返回客户端之间多次使用。

相关问题