Python 关于Bokeh0.11的困惑:获取用户可读的会话id

Python 关于Bokeh0.11的困惑:获取用户可读的会话id,python,bokeh,Python,Bokeh,Bokeh0.10的文档还可以,并且有很多好的方面。然而,我现在真的不知道如何告诉Bokeh0.11使用一个易于记忆的url。我目前的尝试: 将numpy作为np导入 导入时间 from bokeh.client import push_session from bokeh.plotting import figure, curdoc, output_server x = np.random.rand(10) y = np.random.rand(10) p = figure() r2 =

Bokeh0.10的文档还可以,并且有很多好的方面。然而,我现在真的不知道如何告诉Bokeh0.11使用一个易于记忆的url。我目前的尝试:

将numpy作为np导入 导入时间

from bokeh.client import push_session
from bokeh.plotting import figure, curdoc, output_server

x = np.random.rand(10)
y = np.random.rand(10)

p = figure()
r2 = p.line(x, y, color="navy", line_width=4)
# open a session to keep our local document in sync with server
session = push_session(curdoc())
session.show() # open the document in a browser
time.sleep(2)
while True:
    x = np.random.rand(10)
    y = np.random.rand(10)
    r2.data_source.data["y"] = y
    r2.data_source.data["x"] = x
    time.sleep(2)
从:

push_会话(curdoc(),会话id='yeah')

然而,url仍然有点笨拙:
http://localhost:5006/?bokeh-会话id=是
有没有办法把它改成
http://localhost:5006/yeah


编辑:我应该提到,我正在流式传输数据。数据由一个类收集,该类本身在另一个类中启动。因此,我无法轻松调用
bokehserve DAQ.py
。此外,我没有一个定期更新功能。这取决于某些工艺条件。

这种使用Bokeh服务器的方法(使用
Bokeh.client
)非常适合本地单独使用。这里有一个关于不同用例场景的有用讨论

如果您想创建一个其他用户可以交互的“可部署应用程序”,那么您绝对希望创建一个Bokeh应用程序(实际上更简单)。基本思想是创建一个脚本,使用
bokehserve
命令运行,例如

bokeh serve myapp.py --show 
默认情况下,在
http://localhost:5006/myapp
。您上面的代码将简化为:

import numpy as np
from bokeh.plotting import figure, curdoc 

x = np.random.rand(10)
y = np.random.rand(10)

p = figure()
r2 = p.line(x, y, color="navy", line_width=4)

# define a callback to update the data
def update():
    x = np.random.rand(10)
    y = np.random.rand(10)

    # important to update all data "at once"
    r2.data_source.data = dict(x=x, y=y)

# run the callback to update the data every 2000 ms
curdoc().add_periodic_callback(update, 2000)
有关创建和部署应用程序的更多信息,请参见:

下面介绍了bokeh serve的所有命令行选项:

下面是几个应用程序的实例(带有到源代码的链接):


如果我想从python脚本(执行数据采集的类)中流式传输数据,我不能使用
bokeh-serve-DAQ.py
执行它,因为它是在另一个类中启动的。什么是可部署应用程序仍然是这里的最佳选择?有什么原因不能像任何其他python模块一样将进行采集的类导入Bokeh应用程序脚本?嗯,必须考虑一下。它是从kivy内部调用的。有很多潜在的选择,这在很大程度上取决于您的具体情况。您可以访问公共邮件列表进行更深入的讨论。