运行此代码时,出现此错误:
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)
我如何使用装饰器? 这听起来不太清楚。
答案 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
装饰器,但这完全是另一个问题,我建议您完成文档中的示例更熟悉)