Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

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 パッケージの作成を参照してください。

  1. [MATLAB アプリ] タブで、[アプリ] セクションの右端にある矢印をクリックします。[アプリケーションのデプロイ] で、[ライブラリ コンパイラ] をクリックします。

    または、MATLAB コマンド プロンプトから [ライブラリ コンパイラ] アプリを開くことができます。

    libraryCompiler

    Compiler tab with the Library Compiler app open

  2. ツールストリップの [タイプ] セクションで、[Python パッケージ] をクリックします。

    ライブラリ コンパイラ アプリのプロジェクト ウィンドウで、デプロイする MATLAB アプリケーションのファイルを指定します。

    1. ツールストリップの [エクスポートする関数] セクションで、Add exported function to the project をクリックします。

    2. [ファイルの追加] ウィンドウで、サンプルのフォルダーを参照し、パッケージ化する関数を選択します。[開く] をクリックします。

    エクスポートする関数ファイルのリストに関数が追加されます。同じアプリケーションに複数のファイルをパッケージ化するには、この手順を繰り返します。

    この例では、先ほど記述した makesqr.m ファイルを選択します。

  3. ツールストリップの [パッケージ化オプション] セクションで次のオプションのいずれかを選択して、生成されるアプリケーションに MATLAB Runtime インストーラーを含めるかどうかを決定します。

    • ランタイムを Web からダウンロードMATLAB Runtime をダウンロードしてデプロイされた MATLAB アプリケーションと共にインストールするインストーラーを生成します。インストーラーのファイル名を指定できます。

    • ランタイムをパッケージに含めるMATLAB Runtime インストーラーを含むアプリケーションを生成します。インストーラーのファイル名を指定できます。

      メモ

      このオプションを初めて選択したときに、MATLAB Runtime インストーラーをダウンロードするように求めるメッセージが表示されます。

パッケージ設定の指定

次に、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 = 0x = 5 に変更し、ファイルを保存して、[ライブラリ コンパイラ] アプリに戻ります。

注意

目的の結果を出力するには MATLAB サンプル ファイルを編集する必要があります。生成されたターゲット言語のサンプル ファイルは、サンプル MATLAB ファイルと同じ入力と出力を使用します。

コンパイラにより、パッケージ化の際にこの MATLAB コードが Python コードに変換されます。詳細と制限については、サンプル ドライバー ファイルの作成を参照してください。

アプリケーションとその外観のカスタマイズ

ライブラリ コンパイラ アプリでは、インストーラーをカスタマイズし、アプリケーションをカスタマイズし、アプリケーションについて情報を追加することができます。

  • ライブラリ情報 — デプロイされるアプリケーションに関する情報。また、アプリケーション アイコンとスプラッシュ スクリーンを変更して、アプリケーションの外観をカスタマイズすることもできます。生成されるインストーラーはこの情報を使用して、インストールされるアプリケーションのメタデータを入力します。インストーラーのカスタマイズを参照してください。

  • 追加インストーラー オプション — 生成されるインストーラーの既定のインストール パスと、カスタム ロゴの選択。インストール パスの変更を参照してください。

  • ライブラリの実行に必要なファイル — 生成されるアプリケーションを実行するために必要な追加ファイル。これらのファイルは、生成されるアプリケーション インストーラーに含められます。コンパイラ プロジェクトの必須ファイルの管理を参照してください。

  • エンド ユーザー用にインストールされるファイル — アプリケーションと共にインストールされるファイル。

    アプリケーションと共にインストールするファイルの指定を参照してください。

Fields in the Library Compiler app for customizing your application

アプリケーションのパッケージ化

パッケージ化オプションの選択が終了したら、ライブラリ コンパイラのプロジェクトを保存し、パッケージ化されたアプリケーションを生成します。

  1. [パッケージ化] をクリックします。

    [プロジェクトを保存] ダイアログ ボックスで、プロジェクトを保存する場所を指定します。

  2. [パッケージ] ダイアログ ボックスで、[プロセスが完了したら出力フォルダーを開く] が選択されていることを確認します。

    パッケージ化プロセスが完了したら、ターゲット フォルダー内の生成された出力を調べます。

    • 3 つのフォルダー for_redistributionfor_redistribution_files_only、および for_testing が生成されます。

      これらのフォルダーに生成されるファイルの詳細については、MATLAB 関数のパッケージ化後に生成されるファイルを参照してください。

    • ログ ファイル PackagingLog.html にはパッケージ化の結果が含まれています。

compiler.build.pythonPackage を使用した Python パッケージの作成

ライブラリ コンパイラ アプリの代わりに、プログラムによる方法を使用して Python パッケージを作成することができます。ライブラリ コンパイラを使用してパッケージが既に作成されている場合は、MATLAB により生成された Python アプリケーションのインストールと実行を参照してください。

  1. 以下のコードを makesqrSample1.m という名前のサンプル ファイルに保存します。

    x = 5;
    y = makesqr(x);

  2. 関数 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 には、ビルド タイプ、生成ファイル、含まれるサポート パッケージ、およびビルド オプションに関する情報が含まれています。

  3. この関数により、現在の作業ディレクトリにある 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.txtMATLAB Runtime がアプリケーションを実行するために必要な製品の製品 ID が含まれるテキスト ファイル。

    • setup.py — パッケージをインストールする Python ファイル。

    • unresolvedSymbols.txt — 未解決のシンボルに関する情報が含まれるテキスト ファイル。

    メモ

    生成されたパッケージに MATLAB Runtime やインストーラーは含まれていません。buildResults オブジェクトを使用してインストーラーを作成するには、compiler.package.installer を参照してください。

MATLAB により生成された Python アプリケーションのインストールと実行

Python パッケージの作成後、これを Python アプリケーションから呼び出すことができます。この例では、パッケージ化の際に生成されたサンプル Python コードを使用します。このサンプル Python アプリケーション コードは、独自のアプリケーションを記述するためのガイドとして使用できます。

  1. 生成された Python ファイル makesqrSample1.pysamples フォルダーからコピーして、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()

  2. システム コマンド プロンプトで、makesqrSample1.pysetup.py が含まれているフォルダーに移動します。

  3. python コマンドを使用してアプリケーションをインストールします。

    python setup.py install

    既定以外の場所にインストールするには、公式 Python ドキュメンテーションの「Python モジュールのインストール」を参照してください。

  4. システム コマンド プロンプトでアプリケーションを実行します。

    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/bin フォルダーにあります。ここで、matlabroot は MATLAB または MATLAB Runtime がインストールされている場所です。

参考

| | | |

関連するトピック