Import von matlab.engine funktioniert in IPython aber nicht in Jupyter
Ich habe die MATLAB Engine-API für Python mit @ in mein Ausgangsverzeichnis installier
$ python setup.py build --build-base=$HOME install --prefix=$HOME
Allerdings, wenn ich versuche,import matlab.engine
Von einem Jupyter-Notizbuch erhalte ich die folgende Fehlermeldung:
---------------------------------------------------------------------------
EnvironmentError Traceback (most recent call last)
<ipython-input-2-833daa01cd46> in <module>()
8 import numpy as np
9 import matplotlib.pyplot as plt
---> 10 import matlab.engine
11
12 from dopa_net.behavioral_experiments.analysis_code import behavior_analysis as ba
/home/despo/dbliss/lib/matlab/engine/__init__.py in <module>()
57 pythonengine = importlib.import_module("matlabengineforpython"+_PYTHONVERSION)
58 except:
---> 59 raise EnvironmentError('The installation of MATLAB Engine for Python is '
60 'corrupted. Please reinstall it or contact '
61 'MathWorks Technical Support for assistance.')
EnvironmentError: The installation of MATLAB Engine for Python is corrupted. Please reinstall it or contact MathWorks Technical Support for assistance.
Obwohl erhalte ich diesen Fehler nicht, wenn ichimport matlab.engine
aus einer IPython-Shell herausim selben Verzeichnis wie das Jupyter-Notizbuch. Ich kann die Engine nicht nur aus der Shell importieren, sondern sie funktioniert auch in der Shell, was mir zeigt, dass nichts beschädigt ist:
In [1]: import matlab.engine
In [2]: eng = matlab.engine.start_matlab()
In [3]: tf = eng.isprime(37)
In [4]: print tf
True
Irgendwelche Ideen, was los ist?
N.B. Ich habe heute früher eine Version der Engine in meinem Home-Verzeichnis installiert, aber ich habe versucht, sie zu deinstallieren (und dachte, ich hätte es getan). Ich vermute, dass ein Teil davon zurückgelassen wurde und Probleme verursacht. Aber warum bereitet es nur Jupyter Ärger und nicht der IPython-Shell? (Und wie würdest du raten, dass ich es loswerden sollte?)
AktualisiereIch verfolgte den Fehler in der folgenden Zeile im__init__.py
Datei für dasmatlab.engine
Modul:
importlib.import_module("matlabengineforpython2_7")
, das keinen Fehler in der IPython-Shell auslöst, aber den folgenden Fehler in Jupyter auslöst:
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-4-831d184262c4> in <module>()
----> 1 importlib.import_module("matlabengineforpython2_7")
/usr/local/anaconda-2.4.0/lib/python2.7/importlib/__init__.pyc in import_module(name, package)
35 level += 1
36 name = _resolve_name(name[level:], package, level)
---> 37 __import__(name)
38 return sys.modules[name]
ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /srv/local/matlab-2015a/extern/engines/python/dist/matlab/engine/glnxa64/../../../../../../../bin/glnxa64/libmwfl.so)
Ich habe keine Ahnung, was hier los ist.