与directview的Ipyparallel错误

时间:2016-11-30 05:11:13

标签: ipython ipython-parallel

运行此代码时,出现此错误:

from ipyparallel import error, AsyncHubResult, DirectView as dv, Reference

@dv.parallel(block=True)
def np_std_par(x):
    return np_std(x)

TypeError: unbound method parallel() must be called with 
DirectView instance as first argument (got nothing instead)

我如何使用装饰器? 这听起来不太清楚。

1 个答案:

答案 0 :(得分:0)

第一个代码块(及以上)中写的

dv实际上不是DirectView

from ipyparallel import DirectView as dv
print(type(dv))
<class 'traitlets.traitlets.MetaHasTraits'>

DirectView不需要导入it should be created from a Client()

import ipyparallel
client = ipyparallel.Client()
dv = client[:]

print(type(dv))
<class 'ipyparallel.client.view.DirectView'>

现在装饰器将按预期执行。 (虽然看起来您可能需要在函数中导入np_std或使用require装饰器,但这完全是另一个问题,我建议您完成文档中的示例更熟悉)