我在 jupyter 实验室中创建了一个交互式应用程序,并在面板对象上调用了 .show(),因此它启动了一个 Bokeh 服务器,如下例所示。看起来不错,但现在我想停止服务器。如何在不停止 jupyter 笔记本或终止我的 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)
最佳答案
也许最好这样声明 Bokeh 服务器:
bokeh_server = pn.panel(hv_plot).show(port=12345)
这样您就可以立即控制服务器,而无需查看 globals() 来查看服务器在哪里。
您可以按如下方式停止服务器:
bokeh_server.stop()
奇怪的是,当你像这样停止服务器时,仍然可以访问地址 localhost:12345,并且当你已经在浏览器中打开该应用程序时,你仍然可以使用该应用程序。但是,当您刷新页面时,它就消失了,您可以再次将该端口用于其他应用程序。只需要相当长的一段时间,服务器就完全停止了。
关于python - 如何停止在我的 jupyter 实验室或笔记本中由面板启动的 Bokeh 服务器/应用程序? (不杀死我的内核),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57705735/