为什么我不能将python变量传递给jupyter magic函数?

时间:2019-07-18 18:15:04

标签: ipython jupyter jupyter-lab ipywidgets

我正在尝试创建一个小部件按钮,该按钮将收集其他小部件的值,然后使用%run来使用这些值执行另一个笔记本。我正在使用%store传递值,但它无法识别要传递值的python变量并给出错误。

import ipywidgets as widgets
from IPython import get_ipython
ipython = get_ipython()

def on_button_clicked(_):
    path=srch_loc.value
    with out:            
        path= srch_loc.value #returns the value typed into widget srch_loc
        print('Something happens!')
        print(path)
        ipython.magic("store path")

button.on_click(on_button_clicked)

当我单击按钮时,结果如下:

Something happens!
/san-data/users/$USER/
UsageError: Unknown variable 'path'

打印功能将path识别为变量,但下一行代码却不识别

我希望不会收到未知的变量消息,并且如果我运行%store以查看列出的路径具有来自srch_loc.value的正确值

1 个答案:

答案 0 :(得分:0)

您的path变量是函数的局部变量。 IPython魔术试图访问笔记本代码定义的变量,该变量具有不同的范围。