【问题标题】:Anaconda Python: ModuleNotFoundError: No module named 'matlab'Anaconda Python:ModuleNotFoundError:没有名为“matlab”的模块
【发布时间】:2020-06-01 20:54:33
【问题描述】:
【问题讨论】:
标签:
python
matlab
anaconda
【解决方案1】:
如果您尝试在 conda 环境中安装 matlab 引擎,请按照以下步骤操作:
cd "matlabroot\extern\engines\python"
python setup.py install --prefix="installdir"
例如
cd /opt/MATLAB/R2019a/extern/engines/python
python setup.py install --prefix="/home/nagabhushan/anaconda3/"
现在,matlab 引擎包实际上是安装在单独的
anaconda3/lib/python3.6/site-package/matlab
因此,您需要手动将该 matlab 文件夹移动到您的 python 正在使用的站点包文件夹中。如果您有多个虚拟环境,请将其移动到您将运行程序的虚拟环境的相应站点包文件夹中。
例如
anaconda3/envs/my_env/lob/python3.6/site-packages/matlab
参考资料:
https://stackoverflow.com/a/41800724/3337089
https://stackoverflow.com/a/56553740/3337089
编辑 1(2020 年 3 月 3 日):
我尝试激活我的环境,然后简单地安装 matlab 引擎,它就成功了!我正在使用Python 3.7
python setup.py install
请注意,这最初给出了 error: You do not have write permission in build/lib/matlab/engine/ 的错误,但递归地更改构建目录的权限:sudo chmod -R 777 build/
【解决方案2】:
经过多次测试,我认为我解决了这个问题。如果有人有同样的问题,我会发布答案。如此处所述:
https://stackoverflow.com/a/39759581/9834571
您可以添加替代 python 命令。对我来说,当我将上述示例更改如下时,它就起作用了:
sudo update-alternatives --install /usr/bin/python python ~/anaconda3/envs/ 2
update-alternatives --display python
cd /usr/local/MATLAB/R2018a/extern/engines/python/
python setup.py build --build-base=$(mktemp -d) install
【解决方案3】:
按照 Nagabhushan S N 回答,here,为了使用 conda (miniconda3) 和 Linux Ubuntu 18 LTS 和 Matlab 2018 安装 matlab/matlab.engine,我执行了以下步骤。
我使用 Python 3.6 解释器创建了一个新的 conda 环境 (python36),Python 3.6 是 Matlab 2018 支持的版本之一(您需要匹配正确的 Pyhton 版本,否则它将安装 Python 2.7 库),并且我已经直接在python36 env 子文件夹中安装了libs,详细:
cd /usr/local/MATLAB/R2018a/extern/engines/python
python setup.py install --prefix="/home/myname/miniconda3/envs/python36"
例如,import matlab.engine 现在可以在 python36 环境中使用。
P.s:安装需要写权限到build子文件夹(在usr/local...下),所以你需要去sudo和chmod -R +777 /usr/local/MATLAB/R2018a/extern/engines/python/build p>
P.s.2: 仅在基本环境中安装,在我的情况下,不提供 matlab.engine 与其他 conda 环境一起工作。也许这是正常的,预期的,@ 987654329@ 行为。