散景服务器 - 拒绝连接,因为主机不在白名单中



我正在尝试在本地计算机上运行一个简单的散景服务器脚本:

#app.py
from bokeh.io import curdoc
from bokeh.models import ColumnDataSource
from bokeh.plotting import figure
from random import randrange
#create figure
f=figure(x_range=(0,11),y_range=(0,11))
#create columndatasource
source=ColumnDataSource(data=dict(x=[],y=[]))
#create glyphs
f.circle(x='x',y='y',size=8,fill_color='olive',line_color='yellow',source=source)
#create periodic function
def update():
new_data=dict(x=[randrange(1,10)],y=[randrange(1,10)])
source.stream(new_data,rollover=15)
print(source.data)
#add figure to curdoc and configure callback
curdoc().add_root(f)
curdoc().add_periodic_callback(update,1000)`

在命令行上,我尝试了以下各种组合:

bokeh serve app.pybokeh serve app.py --port 5100bokeh serve app.py --host *bokeh serve app.py --allow-websocket-origin=127.0.0.1:80

它们都会返回一条消息,指出主机被拒绝,因为它不在白名单上。我正在运行窗口。出了什么问题?

搞笑的是,我实际上在午餐前让它工作。在用食物奖励自己后,它停止工作,从那以后我就无法得到它。我相信工作组合使用--port--allow-websocket

首先要做的事,如果你只是运行

bokeh serve --show app.py 

然后散景会自动将打开的浏览器窗口提升到正确的URL。 最糟糕的网址将是

http://localhost:5006/app

请注意,这是localhost而不是127.0.0.1

其他一些注意事项:

  • 仅当您将散景应用程序嵌入到具有自己地址的不同独立网站中时,才需要--allow-websocket-origin。不需要只在本地查看。

  • (令人困惑的)--host参数已被弃用并删除(也许您有旧版本?),但也不需要在本地查看

  • --address告诉散景服务器要侦听哪些网络地址,同样本地通常不需要。

  • --port告诉散景服务器要侦听哪个网络端口,而不是默认端口5006。

    例如
    bokeh serve --port 8080 --show app.py 
    

    将导致可在此处访问的应用程序:

    http://localhost:8080/app
    

如果这没有帮助,则需要更多信息。具体来说,您尚未提供的确切错误消息,或者您实际尝试导航到的 URL 的一些指示(因为这是问题的一半)。

答案是版本控制。龙卷风 4.4.2 有效,但 4.5.3 没有

最新更新