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

9 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2024 年 11 月 20 日 0:00
回答済み: MathWorks Support Team 2024 年 11 月 20 日 5:01

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 Center および File Exchangeビッグ データの処理 についてさらに検索

タグ

タグが未入力です。

製品

Community Treasure Hunt

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

Start Hunting!