Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-04, 08:47   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
默认 导入matlab.engine在IPython中有效,但在Jupyter中无效

我刚刚使用以下命令将适用于Python的MATLAB Engine API安装到了我的主目录中

$ python setup.py build --build-base=$HOME install --prefix=$HOME 但是,当我尝试从Jupyter笔记本import matlab.engine ,出现以下错误:

--------------------------------------------------------------------------- EnvironmentError Traceback (most recent call last) in () 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 () 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. 奇怪的是,当我从与Jupyter notebook相同目录的IPython shell import matlab.engine时,没有出现此错误。我不仅可以从shell导入引擎,它还可以在shell中工作,这向我展示了没有损坏的东西:

In [1]: import matlab.engine In [2]: eng = matlab.engine.start_matlab() In [3]: tf = eng.isprime(37) In [4]: print tf True 有什么想法吗?

注意:我确实在今天早些时候将引擎的一个版本安装到了我的主目录中,但是我尝试(并认为自己确实)将其卸载。我的猜测是它的某些部分被抛在了后面,并造成了麻烦。但是,为什么它仅对Jupyter而不对IPython Shell造成麻烦? (您怎么猜我应该摆脱它?)

更新资料

我将错误跟踪到了matlab.engine模块的__init__.py文件中的以下行:

importlib.import_module("matlabengineforpython2_7") 这不会在IPython Shell中引发错误,但是会在Jupyter中引发以下错误:

--------------------------------------------------------------------------- ImportError Traceback (most recent call last) in () ----> 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) 我不知道这是怎么回事。



更多&回答...
poster 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 05:22


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.