Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“安装问题”;“Python的MATLAB引擎”;水蟒_Python_Macos_Matlab_Anaconda - Fatal编程技术网

“安装问题”;“Python的MATLAB引擎”;水蟒

“安装问题”;“Python的MATLAB引擎”;水蟒,python,macos,matlab,anaconda,Python,Macos,Matlab,Anaconda,我正在OS X 10.10.5及以下版本上使用Python 3.4.3 | Anaconda 2.3.0(x86_64)。安装似乎成功了,但在启动python并尝试导入时,我看到以下内容: Python 3.4.3 |Anaconda 2.3.0 (x86_64)| (default, Oct 20 2015, 14:27:51) [GCC 4.2.1 (Apple Inc. build 5577)] on darwin Type "help", "copyright", "credits"

我正在OS X 10.10.5及以下版本上使用Python 3.4.3 | Anaconda 2.3.0(x86_64)。安装似乎成功了,但在启动python并尝试导入时,我看到以下内容:

Python 3.4.3 |Anaconda 2.3.0 (x86_64)| (default, Oct 20 2015, 14:27:51) 
[GCC 4.2.1 (Apple Inc. build 5577)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import matlab.engine
Traceback (most recent call last):
  File "/Users/tyler/.local/lib/python3.4/site-packages/matlab/engine/__init__.py", line 42, in <module>
    pythonengine = importlib.import_module("matlabengineforpython"+_PYTHONVERSION)
  File "/Users/tyler/anaconda/lib/python3.4/importlib/__init__.py", line 109, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
  File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
  File "<frozen importlib._bootstrap>", line 2224, in _find_and_load_unlocked
ImportError: No module named 'matlabengineforpython3_4'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/tyler/.local/lib/python3.4/site-packages/matlab/engine/__init__.py", line 58, in <module>
    pythonengine = importlib.import_module("matlabengineforpython"+_PYTHONVERSION)
  File "/Users/tyler/anaconda/lib/python3.4/importlib/__init__.py", line 109, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
  File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
  File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1191, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1161, in _load_backward_compatible
  File "<frozen importlib._bootstrap>", line 539, in _check_name_wrapper
  File "<frozen importlib._bootstrap>", line 1715, in load_module
  File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
ImportError: dlopen(/Applications/MATLAB_R2015b.app/extern/engines/python/dist/matlab/engine/maci64/matlabengineforpython3_4.so, 2):     Library not loaded: @rpath/libpython3.4m.dylib    
  Referenced from: /Applications/MATLAB_R2015b    .app/extern/engines/python/dist/matlab/engine/maci64/matlabengineforpython3_4.so    
  Reason: image not found    

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/tyler/.local/lib/python3.4/site-packages/matlab/engine/__init__.py", line 60, in <module>
    raise EnvironmentError('The installation of MATLAB Engine for Python is '
OSError: The installation of MATLAB Engine for Python is corrupted.  Please reinstall it or contact MathWorks Technical Support for assistance.
Python 3.4.3 | Anaconda 2.3.0(x86_64)|(默认,2015年10月20日,14:27:51)
[GCC 4.2.1(Apple Inc.build 5577)]关于达尔文
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>导入matlab.engine
回溯(最近一次呼叫最后一次):
文件“/Users/tyler/.local/lib/python3.4/site-packages/matlab/engine/_-init__.py”,第42行,在
pythonengine=importlib.import_模块(“matlabengineforpython”+_PYTHONVERSION)
文件“/Users/tyler/anaconda/lib/python3.4/importlib/_init__.py”,第109行,在导入模块中
return _bootstrap._gcd_import(名称[级别:],包,级别)
文件“”,第2254行,在_gcd_import中
文件“”,第2237行,在“查找”和“加载”中
文件“”,第2224行,在“查找”和“加载”中解锁
ImportError:没有名为“matlabengineforpython3_4”的模块
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“/Users/tyler/.local/lib/python3.4/site packages/matlab/engine/_init__.py”,第58行,在
pythonengine=importlib.import_模块(“matlabengineforpython”+_PYTHONVERSION)
文件“/Users/tyler/anaconda/lib/python3.4/importlib/_init__.py”,第109行,在导入模块中
return _bootstrap._gcd_import(名称[级别:],包,级别)
文件“”,第2254行,在_gcd_import中
文件“”,第2237行,在“查找”和“加载”中
文件“”,第2226行,在“查找”和“加载”中解锁
文件“”,第1191行,在“加载”中
文件“”,第1161行,可向后加载
文件“”,第539行,在\u check\u name\u包装中
加载模块中第1715行的文件“”
文件“”,第321行,在“调用”中,删除了“帧”
导入错误:dlopen(/Applications/MATLAB_R2015b.app/extern/engines/python/dist/MATLAB/engine/maci64/matlabengineforpython3_4.so,2):未加载库:@rpath/libpython3.4m.dylib
参考自:/Applications/MATLAB_R2015b.app/extern/engines/python/dist/MATLAB/engine/maci64/matlabengineforpython3_4.so
原因:找不到图像
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/Users/tyler/.local/lib/python3.4/site packages/matlab/engine/_init__.py”,第60行,在
raise环境错误('MATLAB Engine for Python的安装是'
OS错误:MATLAB Engine for Python的安装已损坏。请重新安装或联系MathWorks技术支持以获得帮助。
在研究这一问题时,我在MathWorks的网站上发现了这一问题,但都没有解决。最后的链接表明问题可能出在MathWorks

考虑到有多少科学工具箱仅在MATLAB中可用,使用Anaconda调用此引擎将非常有用。虽然有其他可用的软件包支持此功能,但它们总是有局限性或其他复杂性,如客户机-服务器体系结构


欢迎提出任何建议。

根据我与MathWorks支持部门的沟通,MATLAB Engine for Python与Anaconda不兼容。幸运的是,这是错误的

多亏了Anaconda邮件列表的指导,我找到了一个简单的解决方案:

sudo ln -s ~/anaconda/lib/libpython3.4m.dylib /usr/lib
在此之后,matlab.engine导入成功。希望这对其他人有所帮助

编辑:从OS X 10.11 El Capitan开始,由于无根特性,需要调整变通方法,因为root不再具有修改/usr/lib的权限

sudo ln -s ~/anaconda/lib/libpython3.4m.dylib /usr/local/lib

如果您试图在conda环境中安装matlab引擎,请执行以下步骤:

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

现在,matlab引擎包实际上安装在单独的
anaconda3/lib/python3.6/site package/matlab

因此,您需要手动将matlab文件夹移动到python正在使用的site package文件夹中。如果您有多个虚拟环境,请将其移动到要运行程序的虚拟环境的相应site package文件夹中。 如
anaconda3/envs/my_env/lob/python3.6/site packages/matlab

参考文献:

编辑1(2020年3月3日):
我尝试激活我的环境,然后简单地安装matlab引擎,它成功了!我正在使用
Python3.7

python setup.py install

请注意,这最初给出的错误是:
错误:您在build/lib/matlab/engine/
中没有写权限,但是递归地更改build目录的权限是有效的:
sudo chmod-R 777 build/

如果我一周前找到这个答案的话!:-)除了添加这个非常重要的链接,LD_LIBRARY_PATH不包含到anaconda的路径,这一点很重要。对于OSX用户来说,DYLD_库路径也是如此。。。请参见此处为我提供的完整Anaconda/MATLAB说明:对于在macOS上使用pyenv的用户:
sudo ln-s$HOME/.pyenv/versions/3.4.7/Python.framework/versions/3.4/lib/libpython3.4m.dylib/usr/local/lib
python setup.py install