【发布时间】:2016-04-21 14:10:13
【问题描述】:
我遇到了这个问题,ipyparallel map 中涉及的任何dict 文字都丢失了,并在输出结果中变成了{}。
此问题不会影响通过 update 方法和 dict 构造函数添加的 dict 项。
要重现该问题,您可以启动一个名为direct view 的集群,例如dview。以下代码在 IPython 中使用 Python 3.4(客户端和引擎)进行了测试。
dview.map(lambda x: {'label': x*2}, range(4)}
当您希望 label 键出现在字典中时,它将返回 [{}, {}, {}, {}]。
以下情况也会出现同样的问题:
- 普通函数声明
- 用作中间值的字典文字(甚至作为
update的参数)
【问题讨论】:
-
刚刚意识到:这只能使用远程集群重现。在本地机器上启动
ipcluster,它工作正常。即使我在托管控制器的机器上执行ipython然后rc = Client(),上面的代码也可以正常运行。
标签: python dictionary ipython ipython-parallel