このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
Python パッケージの生成と Python アプリケーションのビルド
サポートされるプラットフォーム: Windows®、Linux®、Mac
この例では、MATLAB® 関数から Python® パッケージを作成し、生成されたパッケージを Python アプリケーションに統合する方法を説明します。
前提条件
MATLAB Compiler SDK™ と互換性のあるバージョンの Python がインストールされていることを確認します。詳細については、MATLAB でサポートされている他言語のインターフェイスを参照してください。
アプリケーションの実行には、エンド ユーザーによる MATLAB Runtime のインストールが必要です。テスト目的で、MATLAB Runtime の代わりに MATLAB のインストールを使用することができます。詳細については、MATLAB Runtime のインストールと構成を参照してください。
MATLAB での関数の作成
MATLAB で、パッケージ化する MATLAB コードを調べます。この例では、以下のコードを含む、makesqr.m
という名前の関数を作成します。
function y = makesqr(x)
y = magic(x);
MATLAB コマンド プロンプトで、makesqr(5)
と入力します。
出力は 5 行 5 列の行列になります。
17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9
ライブラリ コンパイラ アプリを使用した Python アプリケーションの作成
ライブラリ コンパイラ アプリを使用して、関数を Python パッケージにコンパイルします。あるいは、プログラムによる方法で MATLAB コマンド ウィンドウから Python パッケージを作成する場合は、compiler.build.pythonPackage を使用した Python パッケージの作成を参照してください。
[MATLAB アプリ] タブで、[アプリ] セクションの右端にある矢印をクリックします。[アプリケーションのデプロイ] で、[ライブラリ コンパイラ] をクリックします。
または、MATLAB コマンド プロンプトから [ライブラリ コンパイラ] アプリを開くことができます。
libraryCompiler
ツールストリップの [タイプ] セクションで、[Python パッケージ] をクリックします。
ライブラリ コンパイラ アプリのプロジェクト ウィンドウで、デプロイする MATLAB アプリケーションのファイルを指定します。
ツールストリップの [エクスポートする関数] セクションで、
をクリックします。
[ファイルの追加] ウィンドウで、サンプルのフォルダーを参照し、パッケージ化する関数を選択します。[開く] をクリックします。
エクスポートする関数ファイルのリストに関数が追加されます。同じアプリケーションに複数のファイルをパッケージ化するには、この手順を繰り返します。
この例では、先ほど記述した
makesqr.m
ファイルを選択します。ツールストリップの [パッケージ化オプション] セクションで次のオプションのいずれかを選択して、生成されるアプリケーションに MATLAB Runtime インストーラーを含めるかどうかを決定します。
ランタイムを Web からダウンロード — MATLAB Runtime をダウンロードしてデプロイされた MATLAB アプリケーションと共にインストールするインストーラーを生成します。インストーラーのファイル名を指定できます。
ランタイムをパッケージに含める — MATLAB Runtime インストーラーを含むアプリケーションを生成します。インストーラーのファイル名を指定できます。
メモ
このオプションを初めて選択したときに、MATLAB Runtime インストーラーをダウンロードするように求めるメッセージが表示されます。
パッケージ設定の指定
次に、Python パッケージの名前を定義します。
パッケージの名前を選択します。[ライブラリ名] フィールドに、パッケージの名前として
makesqr
が自動的に入力されます。この名前をMagicSquarePkg
に変更します。Python パッケージの命名要件の詳細については、MATLAB Compiler SDK Python パッケージのインストールとインポートを参照してください。
サンプル ドライバー ファイルの作成
MATLAB ファイルをプロジェクトに追加して、サンプル Python ドライバー ファイルを生成できます。Python ドライバー ファイルはパッケージの作成に必須ではありませんが、MATLAB により生成された Python アプリケーションのインストールと実行で示すように、これらを使用して Python アプリケーションを実装することができます。
[サンプル] セクションで、[新規サンプルの作成] を選択して makesqr.m
をクリックします。MATLAB ファイルが編集用に開きます。
% Sample script to demonstrate execution of function y = makesqr(x) x = 0; % Initialize x here y = makesqr(x);
x = 0
を x = 5
に変更し、ファイルを保存して、[ライブラリ コンパイラ] アプリに戻ります。
注意
目的の結果を出力するには MATLAB サンプル ファイルを編集する必要があります。生成されたターゲット言語のサンプル ファイルは、サンプル MATLAB ファイルと同じ入力と出力を使用します。
コンパイラにより、パッケージ化の際にこの MATLAB コードが Python コードに変換されます。詳細と制限については、サンプル ドライバー ファイルの作成を参照してください。
アプリケーションとその外観のカスタマイズ
ライブラリ コンパイラ アプリでは、インストーラーをカスタマイズし、アプリケーションをカスタマイズし、アプリケーションについて情報を追加することができます。
ライブラリ情報 — デプロイされるアプリケーションに関する情報。また、アプリケーション アイコンとスプラッシュ スクリーンを変更して、アプリケーションの外観をカスタマイズすることもできます。生成されるインストーラーはこの情報を使用して、インストールされるアプリケーションのメタデータを入力します。インストーラーのカスタマイズを参照してください。
追加インストーラー オプション — 生成されるインストーラーの既定のインストール パスと、カスタム ロゴの選択。インストール パスの変更を参照してください。
ライブラリの実行に必要なファイル — 生成されるアプリケーションを実行するために必要な追加ファイル。これらのファイルは、生成されるアプリケーション インストーラーに含められます。コンパイラ プロジェクトの必須ファイルの管理を参照してください。
エンド ユーザー用にインストールされるファイル — アプリケーションと共にインストールされるファイル。
アプリケーションと共にインストールするファイルの指定を参照してください。
アプリケーションのパッケージ化
パッケージ化オプションの選択が終了したら、ライブラリ コンパイラのプロジェクトを保存し、パッケージ化されたアプリケーションを生成します。
[パッケージ化] をクリックします。
[プロジェクトを保存] ダイアログ ボックスで、プロジェクトを保存する場所を指定します。
[パッケージ] ダイアログ ボックスで、[プロセスが完了したら出力フォルダーを開く] が選択されていることを確認します。
パッケージ化プロセスが完了したら、ターゲット フォルダー内の生成された出力を調べます。
3 つのフォルダー
for_redistribution
、for_redistribution_files_only
、およびfor_testing
が生成されます。これらのフォルダーに生成されるファイルの詳細については、MATLAB 関数のパッケージ化後に生成されるファイルを参照してください。
ログ ファイル
PackagingLog.html
にはパッケージ化の結果が含まれています。
compiler.build.pythonPackage を使用した Python
パッケージの作成
ライブラリ コンパイラ アプリの代わりに、プログラムによる方法を使用して Python パッケージを作成することができます。ライブラリ コンパイラを使用してパッケージが既に作成されている場合は、MATLAB により生成された Python アプリケーションのインストールと実行を参照してください。
以下のコードを
makesqrSample1.m
という名前のサンプル ファイルに保存します。x = 5; y = makesqr(x);
関数
compiler.build.pythonPackage
と先ほど記述したmakesqr.m
ファイルを使用して、Python パッケージをビルドします。名前と値の引数を使用してパッケージ名を指定し、サンプル ファイルを追加します。buildResults = compiler.build.pythonPackage('makesqr.m',... 'PackageName','MagicSquarePkg',... 'SampleGenerationFiles','makesqrSample1.m',... 'Verbose','on');
compiler.build
コマンドで名前と値の引数を使用して、追加オプションを指定できます。詳細については、compiler.build.pythonPackage
を参照してください。compiler.build.Results
オブジェクトbuildResults
には、ビルド タイプ、生成ファイル、含まれるサポート パッケージ、およびビルド オプションに関する情報が含まれています。この関数により、現在の作業ディレクトリにある
MagicSquarePkgpythonPackage
という名前のフォルダー内に以下のファイルが生成されます。samples\makesqrSample1.py
— Python サンプル アプリケーション ファイル。GettingStarted.html
— パッケージの統合に関する情報が含まれる HTML ファイル。includedSupportPackages.txt
— パッケージに含まれるすべてのサポート ファイルをリストしたテキスト ファイル。mccExcludedFiles.log
— アプリケーションに含まれていないすべてのツールボックス関数のリストが含まれるログ ファイル。サポートされていない関数の詳細については、MATLAB Compiler の制限を参照してください。pyproject.toml
— ビルド システム要件および情報が含まれた構成ファイル。pip
でパッケージをビルドする際に使用されます。詳細については、pip.pypa.io/en/stable/reference/build-system/pyproject-toml
を参照してください。readme.txt
— パッケージ化およびインターフェイスの情報が含まれるテキスト ファイル。requiredMCRProducts.txt
— MATLAB Runtime がアプリケーションを実行するために必要な製品の製品 ID が含まれるテキスト ファイル。setup.py
— パッケージをインストールする Python ファイル。unresolvedSymbols.txt
— 未解決のシンボルに関する情報が含まれるテキスト ファイル。
メモ
生成されたパッケージに MATLAB Runtime やインストーラーは含まれていません。
buildResults
オブジェクトを使用してインストーラーを作成するには、compiler.package.installer
を参照してください。
MATLAB により生成された Python アプリケーションのインストールと実行
Python パッケージの作成後、これを Python アプリケーションから呼び出すことができます。この例では、パッケージ化の際に生成されたサンプル Python コードを使用します。このサンプル Python アプリケーション コードは、独自のアプリケーションを記述するためのガイドとして使用できます。
生成された Python ファイル
makesqrSample1.py
をsamples
フォルダーからコピーして、setup.py
ファイルを含むフォルダーに貼り付けます。makesqrSample1.py
のプログラム コードを以下に示します。#!/usr/bin/env python """ Sample script that uses the MagicSquarePkg package created using MATLAB Compiler SDK. Refer to the MATLAB Compiler SDK documentation for more information. """ import MagicSquarePkg # Import the matlab module only after you have imported # MATLAB Compiler SDK generated Python modules. import matlab try: my_MagicSquarePkg = MagicSquarePkg.initialize() except Exception as e: print('Error initializing MagicSquarePkg package\\n:{}'.format(e)) exit(1) try: xIn = matlab.double([5], size=(1, 1)) yOut = my_MagicSquarePkg.makesqr(xIn) print(yOut, sep='\\n') except Exception as e: print('Error occurred during program execution\\n:{}'.format(e)) my_MagicSquarePkg.terminate()
システム コマンド プロンプトで、
makesqrSample1.py
とsetup.py
が含まれているフォルダーに移動します。python
コマンドを使用してアプリケーションをインストールします。python setup.py install
既定以外の場所にインストールするには、公式 Python ドキュメンテーションの「Python モジュールのインストール」を参照してください。
システム コマンド プロンプトでアプリケーションを実行します。
python makesqrSample1.py
パッケージ化手順でサンプルの MATLAB コードを使用した場合、このアプリケーションはサンプル コードと同じ出力を返します。
[[17.0,24.0,1.0,8.0,15.0],[23.0,5.0,7.0,14.0,16.0],[4.0,6.0,13.0,20.0,22.0], [10.0,12.0,19.0,21.0,3.0],[11.0,18.0,25.0,2.0,9.0]]
メモ
macOS では、
python
の代わりにmwpython
スクリプトを使用する必要があります。たとえば、mwpython makesqrSample1.py
です。mwpython
スクリプトは
フォルダーにあります。ここで、matlabroot
/binmatlabroot
は MATLAB または MATLAB Runtime がインストールされている場所です。
参考
mwpython
| compiler.build.pythonPackage
| ライブラリ コンパイラ | mcc
| deploytool