Kai*_* O. 5 python jupyter-notebook ipywidgets azure-notebooks
我正在尝试从在 Python 3.6 中运行 Jupyter Notebooks 的 Microsoft Azure Notebooks 中的 ipywidgets 小部件获取输出。但是,当我获取新值时,它不会返回新值。这也适用于从未被其他小部件调用的事件处理程序/交互。
我尝试使用不同类型的小部件(Text、Textarea、Checkbox、Button、ToggleButton)输入不同的初始值。我尝试过在按钮上添加w.value、ipywidgets.interact、w.observe、 和。w.on_click
我做的一个测试:
import time
import ipywidgets as widgets
from IPython.display import display
w = widgets.Text(disabled=False)
display(w)
while True:
print(w.value)
time.sleep(1)
Run Code Online (Sandbox Code Playgroud)
我希望当我在字段中输入某些内容时Text,它会输出该文本,但它会继续打印它开始的内容。没有错误。因此,对于上面的示例,无论我在结果文本字段中输入什么,所有打印的都是空行。
此代码在普通笔记本服务器中无法按预期工作,因此可能也无法在 Azure 中工作。我怀疑您需要一个线程进程来读取更新的小部件。尝试此操作,看看更改文本字段时 Azure Notebooks 中是否会打印任何内容。
import time
import ipywidgets as widgets
from IPython.display import display
w = widgets.Text(disabled=False)
display(w)
def print_text(widget):
print(widget['new'])
w.observe(print_text, names='value')
Run Code Online (Sandbox Code Playgroud)