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

问题描述 投票:0回答:6

我正在尝试使用 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)

python matlab
6个回答
11
投票

需要安装Matlab Engine for Python,无法使用pip安装。请尝试此处列出的说明。我在下面简要列出了说明:

  1. 确保您的 PATH 中有 Python。
  2. 找到Matlab根文件夹。您可以使用 Matlab 中的
    matlabroot
    命令来查找它。
  3. 在命令行中转到Matlab根文件夹。
  4. cd "matlabroot\extern\engines\python"
    (在 Windows 中)
  5. python setup.py install
    
    

1
投票

pip install matlab

 为您提供 
this,它使用 安装模块

from numpy import * from pylab import *

里面。我很确定这不是你想要的......

我猜您尝试导入 Python 的 Matlab 编译器运行时。不过,它必须与 Mathworks 的相应软件一起安装,它不是通过 Python 包索引/pip 来安装的。查看说明

在他们的网站上


1
投票
我在这个问题上坚持了很长时间,我找不到一个很好的解释,所以你们都走吧。有一个名为 matlab 的 python 包

here

而且它与 python 的 matlab 引擎无关。当你 pip install matlab 时,它正在安装这个。我正在使用 pycharm,这是它安装的默认版本。我卸载了这个 matlab,而是将必要的信息复制到我的 python 项目中。

为此,我找到了名为 Matlab 的文件夹,当您在 matlabroot/extern/engines/python 中运行 python setup.py install 时,该文件夹会复制到 AppData 中的某个位置,并将其复制到我的 python 项目的 venv 中的 lib 文件夹中,因为我'我正在使用 pycharm 的虚拟环境解释器。


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 系统提示符下,将 R2019a 软件包安装在名为 matlab19aPy36 的子文件夹中:

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
投票
我也做了同样的事。使用

安装了matlab

pip 安装 matlab

并得到了同样的错误

No module named 'matlab.engine'; 'matlab' is not a package.


然后我检查了安装

MATLAB Engine API for Python的官方文档,并按照那里的安装步骤进行操作。

对于我来说,

pip 安装 matlabengine

问题解决了!


0
投票
我认为你需要检查python版本、matlab版本和MATLAB引擎版本的兼容性:

https://pypi.org/project/matlabengine/#history 按照网页安装: https://au.mathworks.com/help/matlab/matlab_external/install-the-matlab-engine-for-python.html

© www.soinside.com 2019 - 2024. All rights reserved.