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

时间:2011-04-29 11:37:24

标签: python django matlab flask

您好我想使用python在Web上部署matlab应用程序。有没有办法做到这一点。我已根据数学工作网站上的文档将我的应用程序转换为jar文件(java类)。有人能指出我正确的方向继续吗

1 个答案:

答案 0 :(得分:6)

你的Matlab代码打包为Jars这一事实在这里可能没那么多,至少不是纯Python。

有几种方法可以使用Java编写的代码并将其公开给Python。

的Jython

如果你愿意给Jython一个机会,这可能是一个非常简单的方法来为你的jar提供Django接口。

基本上你可以编写一个普通的Django应用程序,并使用Jython与你的Jars本地工作。假设你不依赖于CPython,这可能是两个世界中最好的。

Django-Jython

Java兼容性接口

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

  • JCC:创建一个包装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()

假设有效,你可以从stdr中删除stdout或错误消息中的答案。您可以提供由该过程创建的图像等。一旦这样的工作正常,您可以查看celeryd从您的Web应用程序中提取子流程内容。

使用单独的流程的优势在于,您可以将Matlab代码中的错误与破坏Web应用程序的错误隔离开来。缺点是您必须序列化所有内容并在客户端浏览器和Web应用程序之间,Web应用程序和可执行文件之间多次使用,然后再返回客户端。