SuperAPI AI 工具集

matlab-call-python

编程与开发

查看项目

更新于 10-16 00:21

技能介绍

用途:在 MATLAB 中调用 Python 库,使用现代 API、正确的环境配置和结构化的错误恢复。适用于编写通过 py.*、pyrun 或 pyrunfile 调用 Python 的 MATLAB 代码,处理 ModuleNotFoundError、Python 未配置等错误,以及为 MATLAB 设置 Python 或创建虚拟环境、安装 Python 包。不适用于从 Python 调用 MATLAB、构建 MEX 文件或 Python C 扩展、纯 Python 开发、MATLAB Compiler 或 Production Server 部署。

主要规则:不要使用 pyargs,改用 MATLAB 的 name=value 语法传 Python 关键字参数(R2021a 起可用);不要使用 pyversion,改用 pyenv;pip 安装和创建 venv 一律使用 Bash 工具而非 MATLAB system();执行 pip install 或创建虚拟环境前先按 references/environment-setup.md 的恢复流程操作,不要从错误回溯推断 Python 路径;调用 terminate(pyenv) 前必须获得用户确认,因为它会重启 Python 进程并清空所有 Python 状态;Python 期望 int 时用 int32() 包装(超出 32 位用 int64()/uint64());R2026a 及以后传字符串数组用 pystringarray(需 NumPy 2.0+),更早版本用 py.list(cellstr(...))。

工作流:优先用 py.module.function(...) 直接调用;pyrun 用于多语句脚本且变量跨调用保留;pyrunfile 用于运行独立 .py 文件。通过 mcp__matlab__evaluate_matlab_code 或 mcp__matlab__run_matlab_file 执行。失败时仅对环境类错误按 environment-setup.md 排查,其他 Python 错误直接调试代码。

关键函数:pyenv(R2019b 起)、pyrun 与 pyrunfile(R2021b 起)、pystringarray(R2026a 起)。执行模式分 OutOfProcess(独立进程,可 terminate 并切换环境)与 InProcess(默认,性能更好但无法 terminate)。OutOfProcess 下修改自定义模块或中途安装包后需先 terminate(pyenv);InProcess 下需 clear all; clear classes; 后重新 import_module 并 reload。关键字参数名与 MATLAB 变量冲突时加 Val 后缀;不要“激活”虚拟环境,直接用 pyenv(Version=...) 指向 venv 可执行文件。