迟到Jupyter笔记本的一个单元格中的已定义变量在其他任何单元中均不起作用

时间:2019-04-24 21:17:10

标签: python jupyter-notebook dask

这是我关于stackoverflow的第一篇文章,我希望选择正确的类别。所以这是我的问题:

为了了解Dask,我决定开始使用此tutorial

创建conda环境并按照README.md中的建议运行python脚本后,我尝试了以下几行:

from time import sleep
from dask import delayed

def inc(x):
    sleep(1)
    return x + 1

def add(x, y):
    sleep(1)
    return x + y

我在Jupyter笔记本中使用了另一个单元格

x = delayed(inc)(1)
y = delayed(inc)(2)
z = delayed(add)(x, y)

如果我现在将同一单元格用于

z.compute()

我得到正确的结果。但是,如果我在另一个单元中执行此操作,则会得到一个

  

NameError:名称'z'未定义

我不知道为什么会这样,在其他地方也找不到任何线索。你能帮我么。

先谢谢了。 sgr

1 个答案:

答案 0 :(得分:1)

jupyter(或ipykernel)中当前存在一个错误,这意味着使用%%time定义的单元格中的变量无法在该单元格中生存。降级或重新运行代码而无需计时。

ref https://github.com/dask/dask-tutorial/issues/85