解决No module named matlab.engine的问题
1. 问题描述
使用matlab做信号处理是很舒服的一件事情,但是如果我们想用python来调用MATLAB的处理结果岂不是美滋滋?python还真有调用MATLAB的库,那就是matlab.engine模块,但是使用起来会出现“No module named 'matlab.engine”的问题:
这是因为matlab的支持问题,常用的matlab版本对应的python版本号为:
Matlab 2016a 最高支持 python 3.4
Matlab 2016b,2017a 最高支持 python 3.5
Matlab 2017b 最高支持 python 3.6
其余的MATLAB支持的python版本可以在软件安装路径下(以我的路径为例)
D:\matlab\extern\engines\python
中的“setup.py”文件中可以查看:
上图是MATLAB 2017b的setup文件,其支持python2.7, 3.4, 3.5, 3.6版本
2. 解决方法
首先要确认你电脑中的MATLAB版本是否支持你所使用的python版本,如果不支持的话,可以安装合适的matlab版本,或者更改python的版本。
matlab各版本破解版网上都可以找到,这里以anaconda为例演示怎么更换python版本:
第一步新建虚拟环境,以python3.6为例
conda create -n py36 python=3.6
进入虚拟环境:
activate py36
下载nb_conda用来给jupyter notebook用
conda install nb_conda
这样python3.6的基础环境就搭建好了,剩下的安装一些自己需要的包即可
如果MATLAB版本支持所使用的python版本,需要进行一下操作将MATLAB与python就行“绑定”
第一步:“win+R”输入“cmd”打开命令行:
第二步:将路径更改为MATLAB安装路径,即“setup.py”文件所在的路径:
第三步:打开我们的python环境,这里我们以刚建立的py36为例:
第四步:依次输入以下命令:
python setup.py build --build-base="builddir" install
python setup.py install --prefix="installdir"
python setup.py build --build-base="builddir" install --prefix="installdir"
python setup.py install --user
然后大功告成,我们可以测试一下,发现“matlab.engine”加载成功: