如何在Anaconda3的Spyder(Python 3.10)中运行Matlab R2018b脚本?
解决方案:Python调用Matlab .m脚本的兼容性问题修复
针对Matlab R2022a(推荐,适配原Python 3.10)
R2022a官方支持Python 3.8-3.10,无需降级Python,直接配置Matlab引擎到你的Anaconda环境:
- 打开Anaconda Prompt,激活你原本用于Spyder的环境(如base环境直接跳过激活):
conda activate your_spyder_env - 定位到Matlab R2022a的Python引擎安装目录(默认路径如下,根据你的安装路径调整):
cd "C:\Program Files\MATLAB\R2022a\extern\engines\python" - 执行引擎安装命令:
python setup.py install - 在Spyder中测试调用(确保从激活的环境启动Spyder,而非系统全局Spyder):
import matlab.engine # 启动Matlab引擎 eng = matlab.engine.start_matlab() # 运行你的.m脚本,nargout=0表示无需返回值 eng.run("your_script.m", nargout=0) # 关闭引擎 eng.quit() - 额外检查:确认R2022a试用版已激活你需要的4个工具箱(Computer Vision、Image Processing、Optimization、Statistics & Machine Learning)
针对Matlab R2018b(需严格匹配Python版本)
R2018b仅支持Python 3.5-3.7(必须是64位Python,与Matlab位数一致),之前降级到3.6未解决问题大概率是环境配置不规范:
- 创建独立的conda环境隔离冲突:
conda create -n matlab18b_env python=3.6 conda activate matlab18b_env - 安装Spyder到该环境:
conda install spyder - 配置Matlab引擎(路径根据你的R2018b安装位置调整):
cd "C:\Program Files\MATLAB\R2018b\extern\engines\python" python setup.py install - 测试调用代码同R2022a方案,注意必须从
matlab18b_env环境启动Spyder - 额外检查:将Matlab R2018b的bin目录添加到系统PATH:
C:\Program Files\MATLAB\R2018b\bin\win64
通用排查步骤
- 验证引擎安装:在激活的环境中执行以下命令,确认引擎属于当前环境:
python -c "import matlab.engine; print(matlab.engine.__file__)" - 单独测试Matlab脚本:直接打开Matlab运行你的.m脚本,排除脚本本身的语法或工具箱调用错误
- 确认Spyder启动路径:必须从配置好的conda环境中启动Spyder(命令行输入
spyder),而非桌面快捷方式(可能绑定旧环境)
内容的提问来源于stack exchange,提问作者user173539
相关产品推荐
相关产品推荐

