如何在Jupyter实验室或笔记本电脑中停止由面板启动的bokeh服务器/应用程序? (不会杀死我的内核)

时间:2019-08-29 08:04:03

标签: python jupyter bokeh hvplot panel-pyviz

我在jupyter实验室中创建了一个交互式应用程序,并在面板对象上调用了.show(),因此它启动了bokeh服务器,如下例所示。看起来不错,但现在我想停止服务器。如何在不停止jupyter Notebook或杀死我的python内核的情况下做到这一点?我不想重启笔记本内核,因为我不想丢失当前笔记本中存在的其他变量。
我只想停止/杀死由.show()启动的bokeh服务器

import numpy as np
import pandas as pd
import hvplot.pandas
import holoviews as hv
import panel as pn

df = pd.DataFrame(np.random.normal(size=[50, 2]))
hv_plot = df.hvplot()

pn.panel(hv_plot).show(port=12345)

1 个答案:

答案 0 :(得分:0)

也许最好这样声明bokeh服务器:

bokeh_server = pn.panel(hv_plot).show(port=12345)

这样,您可以立即控制服务器,而不必查看globals()来查看服务器的位置。

您可以按以下步骤停止服务器:

bokeh_server.stop()

奇怪的是,当您这样停止服务器时,仍然可以访问地址localhost:12345,并且已经在浏览器中打开该应用程序时仍然可以使用它。但是,刷新页面后,页面消失了,您可以再次将端口用于其他应用程序。完全停止服务器需要花费一段时间。