Развертывание приложения Matlab в Интернете с помощью Python

StackOverflow https://stackoverflow.com/questions/5831495

  •  27-10-2019
  •  | 
  •  

Вопрос

Привет, я хочу развернуть приложение Matlab в Интернете с помощью Python. Есть ли способ сделать это. Я преобразовал свое приложение в файлы JAR (классы Java) в соответствии с документацией на сайте Math Works. Может ли кто -нибудь указать мне в правильном направлении, чтобы идти вперед

Это было полезно?

Решение

Тот факт, что ваш код MATLAB упакован, так как банки могут не так сильно помочь здесь, по крайней мере, не с Pure Python.

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

Jython

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

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

ДЖАНГО-ДЖИТОН

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 от нарушения вашего веб -приложения и наоборот. Недостаток заключается в том, что вы должны сериализовать все и работать с несколькими разами между браузером клиента и вашим веб -приложением, между веб -приложением и исполняемым файлом и обратно к клиенту.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top