我无法将对象发送给直接查看工作者。 这就是我想要做的事情:
class Test: def __init__(self): self.id = 'ddfdf' from IPython.parallel import Client rc = Client() dv = rc[:] t = Test() dv['t'] = t print dv['t'] NameError: name 't' is not defined
如果我尝试推送pandas对象或任何构建对象,这将有效。 使用自定义对象的方法是什么?
我试过了:
dv['Test'] = Test dv['t'] = t print dv['t'] UnpicklingError: NEWOBJ class argument isn't a type object
答案 0 :(得分:2)
对于交互式定义的类(在__main__
中),您需要推送类定义,或使用dill。但即便如此,这似乎也不适用于旧式课程,这是IPython处理旧式课程的一个错误[1]。如果您使用新式类,此代码可以正常工作:
class Test(object):
...
而不是旧式的课程。请注意,Python 3中没有旧式类。 无论如何总是使用新式课程通常是一个好主意。