【问题标题】:Call matlab from a Python virtual environment从 Python 虚拟环境调用 matlab
【发布时间】:2020-10-13 16:50:49
【问题描述】:

我可以从我的系统 python 调用 MATLAB:

>>> import matlab.engine
>>> 

但是当我加载一个虚拟环境时,我现在得到一个段错误:

>>> import matlab.engine
Segmentation fault: 11

我已经为系统 python 和我的虚拟环境运行了setup.py install instructions

我预计会出现问题 like this one,其中我必须明确设置 DYLD_LIBRARY_PATH 才能解决问题,但我在运行系统 python 时没有设置该环境变量。

导致此段错误的两个 python 实现之间可能有什么不同?

编辑: 我在 2013 年末的 13" Macbook Pro 上使用 OS X Yosemite。我在新安装的虚拟环境(不是虚拟机)中使用 Python 2.7。

【问题讨论】:

  • 我遇到了同样的问题。你做过这个吗?
  • 不——我只是停止尝试运行 Matlab。

标签: python matlab virtualenv osx-yosemite matlab-engine


【解决方案1】:

我这样做了:

cd "matlabroot\extern\engines\python"
python setup.py install --prefix="installdir"

installdir 是我的 virtualenv,matlabroot 是 MatLab 安装目录。

到目前为止,似乎可以与我的 Windows 服务器一起使用,非常好。

参考这里:

https://www.mathworks.com/help/matlab/matlab_external/install-matlab-engine-api-for-python-in-nondefault-locations.html

【讨论】:

  • 尝试格式化您的答案/代码以使其更清晰。
  • 有人让它在 macOS 上工作吗? macOS 似乎总是想使用mwpython,我不知道如何使用venv
【解决方案2】:

我在虚拟环境处于活动状态的情况下从matlabroot\extern\engines\python 运行了“python setup.py install”。请注意,我确实使用了venv

【讨论】:

    【解决方案3】:

    我已通过 venv 成功运行 Matlab 2019b。 我使用的命令:sudo python3.7 setup.py install --prefix="/home/ubuntu/alexandros/vitrualEnv/py37

    您必须提供通向完整环境的路径。就我而言,它是/home/ubuntu/alexandros/vitrualEnv/py37/。在虚拟环境里面,你会看到

    然后您必须进入 lib 并选择您已安装的版本。例如,我的是 3.7,这就是为什么我有 python3.7 而不是 python3。您可能在 lib 文件夹中有几个 python 文件夹,例如:

    但是,您必须使用主要的那个。在此文件夹中,您将看到类似以下内容:

    【讨论】:

      猜你喜欢
      • 2020-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-27
      • 1970-01-01
      • 1970-01-01
      • 2019-09-24
      • 2020-11-19
      相关资源
      最近更新 更多