PyInstaller を使用して Python 用の MATLAB エンジン API をパッケージ化するにはどのようにしますか?

9 次查看(过去 30 天)

Python 用の MATLAB Engine API を使用する Python アプリケーションをパッケージ化するために PyInstaller を使用しています。作成された実行可能ファイルには Python パッケージ「matlab」はバンドルされていません。その結果、実行可能ファイルを起動すると、次のエラーが発生します。
-------------------
ModuleNotFoundError: No module named 'matlab' 
-------------------
PyInstaller を使用して Python 用の MATLAB エンジン API をパッケージ化するにはどうすればよいですか?

采纳的回答

MathWorks Support Team
MathWorks Support Team 2024-11-20,0:00
MATLAB Engine API パッケージをアプリに含めるには、以下の手順に従います。
1.PyInstaller の Python ターゲット ファイルを含むディレクトリに移動し、まだ存在しない場合は「hooks」という名前のディレクトリを作成します。
2.「hooks」ディレクトリ内に、「matlab」パッケージをインポートするための次のコードを含む「hook-matlab.py」という Python スクリプトを作成します。
-------------------
from PyInstaller.utils.hooks import collect_all
datas, binaries, hiddenimports = collect_all('matlab')
-------------------
3. 「--additional-hooks-dir」オプションを指定した PyInstaller を使用して Python アプリケーションをパッケージ化します。
-------------------
pyinstaller <Python target file> --additional-hooks-dir=hooks    
-------------------
<追加のトラブルシューティング>
ケース 1:  MATLAB Python エンジンがデフォルトの場所にインストールされていない場合
pyinstaller コマンドを実行するときに、パス情報を追加する必要があります。
-------------------
pyinstaller <Python target file> --additional-hooks-dir=hooks --paths <path to the "matlab" folder>
-------------------
ケース2:  MATLAB R2024a以降の場合
次のエラーが表示される場合
-------------------
ImportError: DLL load failed while importing matlabmultidimarrayforpython: The specified module could not be found.
-------------------
「matlabmultidimarrayforpython」ライブラリへのパスを「パス」に含める必要があります。たとえば、
-------------------
pyinstaller <Python target file> --additional-hooks-dir=hooks --paths "C:\Program Files\MATLAB\R2024a\extern\bin\win64"
-------------------
ケース3: インストール破損エラーの場合
実行ファイルの実行時に次のエラーが表示された場合、
-------------------
the MATLAB Engine for Python install is corrupted
-------------------
「hooks」フォルダの設定に問題があります。たとえば、hooks フォルダが存在しない、"--additional-hooks-dir=hooks" フラグが使用されていない、または "hook-matlab.py" ファイルが存在しないなどです。 

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 ビッグ データの処理 的更多信息

标签

尚未输入任何标签。

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!