ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

変数 "py" または関数 "py.command" は未定義です

MATLAB® は、コマンド ウィンドウで 「py.command」と入力すると、自動的に Python® を読み込みます。MATLAB に次のメッセージが表示された場合は、エラーが発生しています。

Undefined variable "py" or function "py.command"

このページを使用してエラーのトラブルシューティングを行います。

Python がインストールされていない

サポートされているバージョンの Python がコンピューターにインストールされていません。お使いの MATLAB バージョンについて入門を確認し、https://www.python.org/downloads から Python をダウンロードしてインストールしてください。

Microsoft® Windows® の場合、Python は既定で Python の 32 ビット バージョンをダウンロードします。MATLAB の 64 ビット バージョンを実行する場合、「Windows x86-64 MSI installer」という名前の Python の 64 ビット バージョンをダウンロードします。詳細は、Windows プラットフォームで 64 ビット バージョンの Python をダウンロードを参照してください。

Linux® システムおよび Mac システムでソース ファイルから Python をビルドする場合は、--enable-shared オプションを設定してビルドを構成します。

Windows プラットフォームでの Python の 64 ビット/32 ビット バージョン

64 ビット バージョンの MATLAB に対して 32 ビット バージョンの Python をインストールしました。64 ビット バージョンの Python をインストールしなければなりません。

MATLAB で Python を検出できない

Python が標準とは異なる場所にあります。パスを Python 実行可能ファイルに指定するには、関数 pyversion を使用します。以下に例を示します。

pyversion C:\Users\uname\WinPython-64bit-3..2.1\python-3..2.amd64\python.exe

Windows システムで、Python が Windows レジストリ内に見つかりません。Python インタープリターをダウンロードしたにもかかわらず、Windows レジストリに登録しなかった場合、次のコマンドを使用して Python の場所を指定します。

pyversion executable

ユーザー定義の Python モジュールのエラー

ユーザー定義の Python モジュールでエラーが発生しました。モジュール mymod にエラーが含まれるかどうかをテストするには、次を入力します。

py.importlib.import_module('mymod')

Python がモジュール内のエラーを検出した場合、MATLAB は Python エラー メッセージを表示します。

または、Python コマンド プロンプトで同等のコマンドを実行し、Python エラー メッセージを取得します。

エラーを修正後、更新されたモジュールにアクセスするには、MATLAB を再起動し、モジュールを検索パスに追加します。

Python 検索パスにない Python モジュール

command が有効な Python コマンドである場合、Python モジュールが Python 検索パスに存在することを確認します。モジュール mymod がパス上にあるかどうかをテストするには、次を入力します。

py.importlib.import_module('mymod')

Python がモジュールを検出できない場合、MATLAB は Python エラー メッセージを表示します。

フォルダー modpath 内の mymod をパスに追加するには、以下を入力します。

P = py.sys.path;
if count(P,'modpath') == 0
    insert(P,int32(0),'modpath');
end

Python の検索パスは現在の MATLAB セッションに読み込まれた Python インタープリターに関連付けられます。MATLAB で検索パスを修正できますが、MATLAB の外部で他のインタープリターのインスタンスを実行している場合、修正内容は反映されません。

モジュール名の競合

標準ライブラリ内のモジュールまたはシステムにインストールされているサードパーティ製モジュールと同じ名前の Python モジュールを呼び出した場合、MATLAB は、誤ったモジュールを読み込む可能性があります。

Python が誤ったモジュールで command を実行しようとする

command がユーザー定義のモジュールにある場合、そのモジュール名が Python 標準ライブラリまたはご使用のシステム上のサードパーティ製モジュールと競合していないことを確認します。

参考

関連するトピック

外部の Web サイト