使用Python运行Matlab时出现“没有名为matlab.engine的模块”错误。

8

我正在尝试使用Python运行Matlab代码。我试图按照此Mathworks页面上给出的说明进行操作。

在尝试通过Python导入Matlab时,它是使用pip install matlab安装的。

然而,导入matlab.engine会产生错误:No module named 'matlab.engine'; 'matlab' is not a package。也无法使用pip install engine进行安装。

如何才能让代码运行起来?我要运行的Python代码如下:

import matlab.engine
eng = matlab.engine.start_matlab()
eng.triarea(nargout=0)

Python版本 - 3.5

Matlab版本 - 8.5.0.197613 (R2015a)


你已经安装了Matlab吗?并且按照这些说明操作:https://www.mathworks.com/help/matlab/matlab_external/get-started-with-matlab-engine-for-python.html? - Pullie
5个回答

10
你需要安装Matlab Engine for Python,不能使用pip进行安装。请尝试按照这里列出的说明进行操作。以下是简要说明:
  1. 确保Python已添加到环境变量PATH中。
  2. 找到Matlab根目录。你可以在Matlab中使用matlabroot命令来查找。
  3. 在命令行中进入Matlab根目录。
  4. cd "matlabroot\extern\engines\python"(Windows系统)
  5. python setup.py install

出现错误,提示Python 3.5不可用于该引擎。仅适用于Python 2.7、3.3和3.4。 - Audrey
1
MATLAB R2016b及以上版本支持Python 3.5。 - Sam Roberts
我正在使用MatlabR2018b和Python 3.6。出现了错误matlab.engine.EngineError:无法评估MATLAB函数。 - DreamerP
我只是在Matlab中编写了一个简单的函数,并尝试使用Python程序调用它...printk(); function printk() fprintf('你好,世界!');end - DreamerP

1
我被这个问题困扰了很久,但是找不到一个好的解释,因此在这里为大家提供一下。有一个名为Matlab的Python包(链接),它与Python的Matlab引擎无关。当你使用pip安装Matlab时,它会安装这个包。我正在使用PyCharm,并且这是默认安装的。我卸载了Matlab并将必要的信息复制到我的Python项目中。
为了做到这一点,我找到了一个名为Matlab的文件夹,它在运行python setup.py install时从matlabroot/extern/engines/python复制到AppData中的某个位置,并将其复制到我的Python项目venv的lib文件夹中,因为我正在使用PyCharm的虚拟环境解释器。

0

pip install matlab 会给你this,它会安装一个带有模块的程序。

from numpy import *
from pylab import *

内部。我非常确定这不是你想要的...

我猜你尝试导入Matlab编译器运行时到Python中。但是,这必须与Mathworks的相应软件一起安装,它不会通过Python包索引/ pip来安装。请查看他们网站上的说明(链接)


0
你可以访问MATLAB官方文档:https://www.mathworks.com/help/matlab/matlab_external/install-the-matlab-engine-for-python.html 我也在此处复制了一份。
安装多个MATLAB版本的Python引擎 您可以通过将MATLAB Python包安装到特定版本的位置来指定从Python脚本运行的MATLAB版本。例如,假设您想从Python 3.6脚本调用MATLAB R2019a或R2019b。
从Windows系统提示符中,在名为matlab19aPy36的子文件夹中安装R2019a软件包:
cd "c:\Program Files\MATLAB\R2019a\extern\engines\python" 
python setup.py install --prefix="c:\work\matlab19aPy36"

将R2019b软件包安装在名为matlab19bPy36的子文件夹中:

cd "c:\Program Files\MATLAB\R2019b\extern\engines\python" 
python setup.py install --prefix="c:\work\matlab19bPy36"

从 Linux 系统提示符:

cd "/usr/local/MATLAB/R2019a/bin/matlab/extern/engines/python"
python setup.py install --prefix="/local/work/matlab19aPy36"
cd "/usr/local/MATLAB/R2019b/bin/matlab/extern/engines/python"
python setup.py install --prefix="/local/work/matlab19bPy36"

在 Mac 终端中:

cd "/Applications/MATLAB_R2019a.app/extern/engines/python"
python setup.py install --prefix="/local/work/matlab19aPy36"
cd "/Applications/MATLAB_R2019b.app/extern/engines/python"
python setup.py install --prefix="/local/work/matlab19bPy36"

0

我也是这样做的。使用

pip install matlab

安装了matlab,但是出现了相同的错误No module named 'matlab.engine'; 'matlab' is not a package.

然后我查看了官方文档,按照MATLAB Engine API for Python的安装步骤进行了操作。

对我来说,

pip install matlabengine

解决了这个问题!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接