【问题标题】:Anaconda Python: ModuleNotFoundError: No module named 'matlab'Anaconda Python:ModuleNotFoundError:没有名为“matlab”的模块
【发布时间】:2020-06-01 20:54:33
【问题描述】:

我是 Python 和 Linux 的新手,想安装适用于 Python 3.6 的 MATLAB 引擎。我已经按照 Mathworks (http://www.mathworks.com/help/matlab/matlab-engine-for-python.html) 的步骤进行操作 并尝试使用python setup.py build --build-base=$(mktemp -d) install,但错误仍然出现。我安装了 MATLAB R2018a 并将 Spyder 3.2.8 与 Anaconda 一起使用。

有人有什么建议吗?

提前致谢!

【问题讨论】:

    标签: 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@ 行为。

        【讨论】:

          猜你喜欢
          • 2020-12-28
          • 2021-11-07
          • 1970-01-01
          • 2022-06-14
          • 2018-09-06
          • 2021-11-26
          • 2017-07-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多