当我将窗口小部件更新链接到一个函数并在面板中显示输出时,由于将窗口小部件更新为该函数无法处理的值而导致的错误导致该函数以静默方式失败,而不是终止面板的执行,并且显示回溯。
在下面的示例中,x
是未定义的,因此当将滑块拖动到5
时,该功能将静默失败,并且不会更新输出值。如果将滑块起始值设置为5
,则该函数将按预期提高NameError
且不会初始化面板。
import panel as pn
pn.extension()
int_slider = pn.widgets.IntSlider(
name='Integer Slider', value=1, end=5)
@pn.depends(int_slider.param.value, watch=True)
def print_slider_value(slider_value):
if slider_value <= 4:
return slider_value
else:
return slider_value * x
pn.Column(int_slider, print_slider_value) #.app('localhost:8888')
当窗口小部件值更改导致错误时,我希望引发这些错误,以便清楚何时发生错误以及回溯发生了什么。如何使用面板实现此目的? (我看到this issue在带有管道的调试模式下,但是找不到与面板相似的东西。)
我一直在JupyterLab笔记本中尝试使用以下软件包版本
bokeh 1.2.0
panel 0.6.0
param 1.9.1
IPython 6.5.0
jupyter_client 5.2.3
jupyter_core 4.4.0
jupyterlab 1.0.2
notebook 5.6.0
答案 0 :(得分:0)
我asked this question on the panel issue tracker并收到响应,指出可以在JS控制台中看到错误。在Firefox上,您可以使用class YourService {
private $blog,$em;
public function __construct(EntityManager $em, EntityManager $blog) {
$this->em = $em
$this->blog = $blog;
}
public function test()
{
//connect to blog
$this->blog->getRepository(your_entity::class)->findAll();
//connect to default
$this->em->getRepository(your_entity::class)->findAll();
}
打开它,或右键单击->检查元素->控制台。在Chrome浏览器中,它是Ctrl-Shift-k
或右键单击->检查->控制台。
This SO answer显示了如何将控制台嵌入到div中,以便可以将其与其他元素一起直接在应用程序中显示。
答案 1 :(得分:0)