Развертывание приложения Matlab в Интернете с использованием Python - PullRequest
6 голосов
/ 29 апреля 2011

Привет, я хочу развернуть приложение matlab в сети, используя python. Есть ли способ сделать это. Я преобразовал свое приложение в jar-файлы (java-классы) согласно документации на сайте математических работ. Может ли кто-нибудь указать мне правильное направление, чтобы идти вперед

1 Ответ

6 голосов
/ 02 мая 2011

Тот факт, что ваш код Matlab упакован как Jars, может не сильно помочь, по крайней мере, с чистым Python.

Есть несколько способов взять код, написанный на Java, и представить его на Python.

Jython

Если вы готовы дать Jython шанс, это может быть действительно простой способ предоставить интерфейс Django вашим банкам.

По сути, вам нужно написать обычное приложение Django, а также использовать Jython для работы с вашими Jars. Это может быть лучшим из двух миров, если вы не привязаны к CPython.

Джанго-Jython

Интерфейсы совместимости с Java

В CPYTHON любой из следующих проектов поможет вам работать с кодом в ваших файлах Jar:

  • JCC : создайте модуль расширения Python, который обернет ваш файл Jar
  • JPype : Предоставляет API для запуска JVM и вызова кода, выполняемого в этой JVM из Python.

Отдельный процесс:

Если у вас есть отдельная программа, написанная на Matlab (на самом деле на любом языке), вы можете выполнить ее как дочерний процесс вашего приложения Django. Вы бы посмотрели на простую веб-форму в Django, которая позволяла вам отправлять значения для ввода в этот процесс, а затем, по вашему мнению (после проверки формы), вы делали что-то вроде:

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

Предполагая, что это сработало, вы можете извлечь ответы из stdout или сообщения об ошибках из stderr. Вы можете передать изображение, созданное этим процессом, и т. Д. Когда что-то подобное сработает, вы можете заглянуть в celeryd, чтобы извлечь подпроцесс из вашего веб-приложения.

Преимущество работы с отдельным процессом состоит в том, что вы изолируете ошибки в своем коде Matlab от взлома вашего веб-приложения и наоборот. Недостатком является необходимость сериализации всего и многократной работы между браузером клиента и вашим веб-приложением, между веб-приложением и исполняемым файлом и обратно клиенту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...