对不起,不能用闭包来腌制代码对象。再次

时间:2014-06-17 05:48:32

标签: python parallel-processing ipython

我有以下用python编写的代码:

from IPython.core.debugger import Tracer
from IPython.parallel import Client
dview = Client()[:]
Tracer()();#First Tracer
numeric_rigs = dview.map_sync(lambda b,c=cluster,o=options:calculate_rig(c,b,o),borders);
Tracer()();#Second Tracer

当我停在第一个Tracer上并在调试器中手动运行第二行时 - 一切正常。但是,如果我在第一个跟踪器之后继续运行代码,则第二行失败并显示消息抱歉,无法使用闭包腌制代码对象

我不明白为什么这条线在调试器中工作但不能独立工作。有人可以帮忙吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

你的代码不是可以运行的,但我可以猜到你可能尝试的东西。

尝试:

dview.use_dill()

如果安装了dill,这将为您提供更好的序列化。

在此处获取dillhttps://github.com/uqfoundation

或使用pip安装dill