PythonスクリプトをMinitab統計ソフトウェアと共に実行する

MinitabからPythonを実行できるさまざまな方法について説明します。
次の3つの方法で、MinitabからPythonスクリプトを実行できます。
  • コマンドプロンプトペインでPYSCコマンドを実行します。
  • PYSCコマンドを含むMinitab execを実行します。
  • Minitabのインタフェースをカスタマイズして、PYSCコマンドを含むMinitab execを実行します。

この PYSC コマンドは、PythonでMinitabの機能を拡張しますが、MinitabをインタラクティブなPython環境にすることはできません。そのため、操作なしで完了する Python スクリプトでのみMinitabを使用してください。たとえば input() 、スクリプトの実行中にキーボードからの入力を受け付ける関数は、Minitabでは機能しません。Python での対話性は、plot.show()keyboard.read_key()など、他に多くの形式をとります。

Pythonコードの例を含むMinitabのPythonモジュールの詳細については、Python APIリファレンスを参照してください。

このガイドで参照されるすべてのファイルは、次の.ZIPファイルで入手可能です: python_guide_files.zip.

Python とMinitab統計ソフトウェアとのインテグレーションを試みる前に、Python をインストールして実行してください。Pythonのインストールに関するサポートについては、所属先のテクニカルサポート部門にお問い合わせください。MinitabテクニカルサポートはPythonのインストールをサポートできません。

コマンドプロンプトペインからPythonスクリプトを実行する

コマンドプロンプトペインでPYSCコマンドを実行できます。コマンドプロンプトペインの一般的な情報については、コマンドライン/履歴ペインを参照してください。セッションコマンドの使用に関する一般敵な情報については、セッションコマンドのヘルプを参照してください。

PYSC["filename.py"]["Args"...]

指定したPythonスクリプトを実行します。

Pythonスクリプトのデフォルトのファイル拡張子は.PYです。ファイル拡張子が.PYの場合は、ファイル拡張子を入力する必要はありません。

オプションの引数Argsを使用すると、sys.argv[1:]を通して引数をPythonスクリプトに渡すことができます。Argsは、任意のテキスト値をスペースで区切られたものである可能性があります。引数は引用符で囲みます。デフォルト値はNoneで、スクリプトは引数を受け取りません。

通常、引数を使用してMinitabからPythonにデータを取り込みます。引数は、いくつかの方法で入力できます。たとえば、列、行列、または定数の識別子である引数を使用できます。

Minitabセッションコマンド での値 Python 使用
PYSC "test.py" "C1"
"C1"
列を取得するには、次の関数を使用します。
mtbpy.mtb_instance().get_column(sys.argv[1:][0])
PYSC "test.py" "M1"
"M1"
行列を取得するには、次の関数を使用します。
mtbpy.mtb_instance().get_matrix(sys.argv[1:][0])
PYSC "test.py" "K1"
"K1"
定数を取得するには、次の関数を使用します。
mtbpy.mtb_instance().get_constant(sys.argv[1:][0])

また、列、行列、または定数の名前の引数をMinitabで使用することもできます。

Minitabセッションコマンド での値 Python 使用
PYSC "test.py" "My Column"
"My Column"
列を取得するには、次の関数を使用します。
mtbpy.mtb_instance().get_column(sys.argv[1:][0])
PYSC "test.py" "My Matrix"
"My Matrix"
行列を取得するには、次の関数を使用します。
mtbpy.mtb_instance().get_matrix(sys.argv[1:][0])
PYSC "test.py" "My Constant"
"My Constant"
定数を取得するには、次の関数を使用します。
mtbpy.mtb_instance().get_constant(sys.argv[1:][0])

Pythonコードで使用するテキストを渡す引数を指定することもできます。テキストは直接または定数で渡すことができます。

Minitabセッションコマンド での値 Python 使用
PYSC "test.py" "Text not Stored"
"Text not Stored"
この場合では、mtbpy 'get'コマンドでは使用できない値を渡します。しかし、Argsは列、行列、定数を渡すだけではありません。
LET K1 = "Text in Constant" PYSC "test.py" K1
"Text in Constant"
この場合は、PYSCはテキスト値ではない引数を受け取りませんが、定数がテキスト値として定義されている限り、PYSCに定数を渡すことができるということを強調しています。

複数の引数を渡すと、引数のリストから順番に引数にアクセスできます。

Minitabセッションコマンド での値 Python 使用
PYSC "test.py" "C1" "C2" "M1" "K3" "10"
"C1" "C2" "M1" "K3" "10"
この場合は、複数のArgsを渡す例で、Pythonの次の関数を使用してアクセスします。
mtbpy.mtb_instance().get_column(sys.argv[1:][0]) mtbpy.mtb_instance().get_column(sys.argv[1:][1]) mtbpy.mtb_instance().get_matrix(sys.argv[1:][2]) mtbpy.mtb_instance().get_constant(sys.argv[1:][3]) int(sys.argv[1:][4])

以下のファイルを使用して、次のサブコマンドのテキスト例からの出力を確認します。test.pyファイルがPythonスクリプト用のMinitabのフォルダにあることをを確認します。
ファイル 説明
test.py このガイド全体で使用されるサンプルPythonスクリプトです。スクリプトに引数を渡すと、結果には引数の値のリストが含まれます。引数 "ArgToBePrintedToStdErr" を指定してスクリプトを実行すると、スクリプトは引数の名前を標準エラーファイルに書き込みます。引数 "ArgToBePrintedToStdOut" を指定してスクリプトを実行すると、スクリプトは引数の名前を標準出力ファイルに書き込みます。次のサブコマンドを使用して、これらのファイルの内容を Minitabの出力ペインに表示するかどうかを制御します。
NOSERR
Minitab の出力ペインに、標準エラー (stderr) コンソール出力のテキストを表示しないように指定します。標準エラーコンソールの出力は、Python統合開発環境でコードを実行するとPythonのエラーメッセージが表示されるものですが、Pythonを使用して他の結果を標準エラーファイルに保存できます。たとえば、デフォルトでは次のようになります。
PYSC "test.py" "ArgToBePrintedToStdErr". 
標準エラーコンソール出力を含む次の結果を生成します。

Python Script

These results are from external software.
The following arguments were passed to Python: ['ArgToBePrintedToStdErr']

Python standard error

The following arguments were printed to Stderr: 'ArgToBePrintedToStdErr'
次のセッションコマンドは、標準エラーコンソール出力を除外します。
PYSC "test.py" "ArgToBePrintedToStdErr"; NOSERR.
セッションコマンドは、以下の結果を生成します:

Python Script

These results are from external software.
The following arguments were passed to Python: ['ArgToBePrintedToStdErr']
SOUT
Minitabの出力ペインに標準コンソール出力 (stdout) のテキストを表示するように指定します。stdoutは、Python統合開発環境でprint()のようなコマンドの結果を表示する場所です。たとえば、デフォルトでは次のようになります。
PYSC "test.py" "ArgToBePrintedToStdOut". 
stdoutを除外する以下の結果を生成します。

Python Script

These results are from external software.
The following arguments were passed to Python: ['ArgToBePrintedToStdOut']
次のセッションコマンドには、stdoutが含まれます。
PYSC "test.py" "ArgToBePrintedToStdOut"; SOUT.
セッションコマンドは、以下の結果を生成します:

Python Script

These results are from external software.
The following arguments were passed to Python: ['ArgToBePrintedToStdOut']

Python standard output

The following arguments were printed to Stdout: 'ArgToBePrintedToStdOut'

Minitab execファイルからPythonスクリプトを実行する

このセクションの手順を実行するには、次のファイルを使用します。
ファイル 説明
test.py このガイド全体で使用されるサンプルPythonスクリプトです。スクリプトに引数を渡すと、結果には引数の値のリストが含まれます。
PYEXEC.MTB 2つの引数を指定してtest.pyスクリプトを実行するためのセッションコマンドを含むMinitabのサンプルexecファイルです。

Execsは、Minitabセッションコマンドを含むテキストファイルです。Minitab execでPythonを実行するPYSCコマンドを含めることができます。execファイルを使用すると、コマンドを再入力しなくても簡単に実行でき、Minitabのカスタムボタンにexecを割り当てることができます。Minitabのexecsの詳細については、Minitabマクロのヘルプを参照してください。execを実行するには、 ファイル > Execを実行するを選択します。

PYEXEC.MTB execを作成するとします。execファイルには、次のMinitabコマンドが含まれています。
PYSC "test.py" "Arg1" "Arg2"
execでPythonスクリプトを実行するには、次の手順に従ってください。
  1. ファイル > Execを実行するを選択します。
  2. ファイルを選択するをクリックします。
  3. PYEXEC.MTBを選択します。
  4. 開くをクリックします。
このスクリプトは、Minitabで引数の値を表示し、execは次の結果を生成します。

Python Script

These results are from external software.
The following arguments were passed to Python: ['Arg1', 'Arg2']

MinitabインタフェースからPythonスクリプトを実行する

Minitab execファイルがある場合は、execを実行するカスタムボタンまたはメニューを作成できます。Minitabでインタフェースをカスタマイズする方法の一般的な情報は、メニュー、ツールバー、およびショートカットキーのカスタマイズを参照してください。

次のステップを使用して、execを実行するカスタムボタンを作成できます。
  1. ビュー > カスタマイズを選択します。
  2. ツールタブをクリックします。
  3. ツールタブで、新規 (Insert) ボタンをクリックする.
  4. コマンドの名前を入力し、Enterキーを押します。
  5. 開くボタンをクリックする.
  6. ファイルの種類ドロップダウンリストから、すべてのファイル(*.*)を選択します。
  7. execファイルを参照して選択します。
  8. 開くをクリックします。
  9. もう一度ビュー > カスタマイズを選択します。
  10. コマンドタブのカテゴリ (分類)で、ツールを選択します。
  11. カスタマイズダイアログボックスが開いている間に、新しいコマンドをMinitabのメニューまたはツールバーに表示する位置までドラッグします。
  12. 閉じるをクリックします。

Minitabのインタフェースをカスタマイズするだけでなく、COMに対応した言語を使用してカスタムダイアログボックスと解析を作成できます。COMを使用して Minitab をカスタマイズする方法については、Minitabの自動化を参照してください。

PYSCコマンドを停止する

Pythonスクリプトを停止してMinitabを開いたままにしておき、最後に保存してからのMinitabプロジェクトの編集内容が失われるのを防ぐことができます。Pythonスクリプト停止する方法は、オペレーティングシステムによって異なります。
Windows

CtrlキーとAltキーとDeletキーを同時に押して、Windowsタスクマネージャーを開きます。次に、Pythonプロセスを終了します。

macOS
ComandキーとOptionキーと Escキーを同時に押して、強制終了ウィンドウを開きます。次に、Pythonアプリケーションを終了します。