Main Content

名前 py.myfunc を解決できない

MATLAB® コマンド プロンプトで py. に続けて Python® ステートメントを入力すると、MATLAB は自動的に Python を読み込みます。MATLAB に次のメッセージが表示される場合、myfunc の呼び出しでエラーが発生しています。

Unable to resolve the name py.myfunc

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

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

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

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

システムに Python がインストールされているかどうかを確認するには、PythonEnvironment Version プロパティを確認します。

pe = pyenv;
if isempty(pe.Version)
    disp "Python not installed"
end

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

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

MATLAB で Python を検出できない

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

pyenv(Version="C:\Users\uname\WinPython-64bit-3..2.1\python-3..2.amd64\python.exe")

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

pyenv(Version="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 が誤ったモジュールで myfunc を実行しようとする

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

参考

関連するトピック

外部の Web サイト