こんにちは私はPythonを使用してWeb上にMATLABアプリケーションをデプロイしたいと思います。それを行う方法はありますか?mathworksサイトのドキュメントに従って、アプリケーションをjarファイル(javaクラス)に変換しました。誰かが私を正しい方向に向けて先に進むことができますか
1 に答える
Matlab コードが Jar としてパッケージ化されているという事実は、少なくとも純粋な Python では、ここではあまり役に立たないかもしれません。
Java で記述されたコードを取得して Python に公開するには、いくつかの方法があります。
ジソン
Jython を試す気があるなら、これは Django インターフェースを jar に提供するための非常に簡単な方法かもしれません。
基本的に、通常の Django アプリを作成し、Jython を使用して Jar をネイティブに操作することができます。あなたがCPythonに縛られていないと仮定すると、これは両方の世界の最高のものになる可能性があります。
Java 互換性インターフェイス
CPYTHON では、次のプロジェクトのいずれかが、Jar ファイル内のコードの操作に役立ちます。
- JCC : Jar ファイルをラップする Python 拡張モジュールを作成する
- JPype : JVM を実行し、その JVM で実行されているコードを Python から呼び出すための API を提供します。
別のプロセス:
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 アプリと実行可能ファイルの間、そしてクライアントに戻るまで、すべてをシリアル化し、複数回操作する必要があることです。