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

17 views (last 30 days)

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

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 20 Nov 2024 at 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" ファイルが存在しないなどです。 

More Answers (0)

Categories

Find more on ビッグ データの処理 in Help Center and File Exchange

Tags

No tags entered yet.

Products

Community Treasure Hunt

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

Start Hunting!