无法解析名称 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 标准库中的模块或系统上的任何第三方模块发生名称冲突。