名前 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® システムおよび macOS システムでソース ファイルから Python をビルドする場合は、--enable-shared オプションを指定してビルドを構成します。「Python を構成する」ドキュメンテーションで、Python configure スクリプトのオプションを確認できます。
システムに 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');
endPython の検索パスは現在の MATLAB セッションに読み込まれた Python インタープリターに関連付けられます。MATLAB で検索パスを修正できますが、MATLAB の外部で他のインタープリターのインスタンスを実行している場合、修正内容は反映されません。
モジュール名の競合
標準ライブラリ内のモジュールまたはシステムにインストールされているサードパーティ製モジュールと同じ名前の Python モジュールを呼び出した場合、MATLAB は、誤ったモジュールを読み込む可能性があります。
Python が誤ったモジュールで myfunc を実行しようとする
myfunc がユーザー定義のモジュールにある場合、そのモジュール名が Python 標準ライブラリまたはご使用のシステム上のサードパーティ製モジュールと競合していないことを確認します。