我是Python和Linux新手,我想为Python3.6安装一个MATLAB引擎。我已经遵循了Mathworks (http://www.mathworks.com/help/matlab/matlab-engine-for-python.html)的步骤,并尝试使用python setup.py build --build-base=$(mktemp -d) install,但错误仍然出现。我已经安装了MatlabSpyder3.2.8与Anaconda R2018a。
有人有建议吗?
提前感谢!
发布于 2018-05-24 12:52:25
经过多次测试,我想我解决了这个问题。如果有人有同样的问题,我会贴出答案。如前所述: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发布于 2019-10-25 14:30:19
如果要在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正在使用的站点包文件夹。如果您有多个虚拟env,则将其移动到将运行程序的虚拟env的相应网站包文件夹中。Eg anaconda3/envs/my_env/lob/python3.6/site-packages/matlab
参考文献:
https://stackoverflow.com/a/41800724/3337089
https://stackoverflow.com/a/56553740/3337089
编辑1(03-2020年3月-2020年):
我试着激活我的环境,然后简单地安装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/
发布于 2019-11-20 11:45:22
按照Nagabhushan S N answer,here,为了安装带有conda (miniconda3)和Matlab2018的matlab/matlab.engine,我执行了以下步骤。
我已经用Python3.6解释器创建了一个新的conda环境(python36),Python3.6是到2018年为止支持的版本之一(您需要匹配正确的Pyhton版本,否则它将安装Python2.7libs),我已经在python36 env子文件夹中直接安装了python36env子文件夹中的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:安装需要对构建子文件夹进行写访问(在usr/.下),所以您需要使用sudo和chmod -R +777 /usr/local/MATLAB/R2018a/extern/engines/python/build
P.s.2:只在基本env中安装,在我的例子中,不提供matlab.engine来与其他conda env一起工作。也许这是一种正常的,预期的,conda行为。
https://stackoverflow.com/questions/50488997
复制相似问题