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。您必须安装 Python 的 64 位版本。

MATLAB 找不到 Python

Python 位于非标准位置。要提供 Python 可执行文件的路径,请使用 pyenv 函数。例如:

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

在 Windows® 系统上,在 Windows 注册表中找不到 Python。如果您下载了 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 标准库中的模块或系统上的任何第三方模块发生名称冲突。

另请参阅

相关主题

外部网站