我正在 Holoviews 中构建仪表板,并尝试使用 Jupyter 笔记本中的 panel.serve() 为其提供服务。它在我的本地计算机上运行良好,但我需要与公司网络中的其他计算机共享它,以便人们可以实际使用它。由于隐私问题,我无法将它部署到 Heroku 或类似的东西。这是示例代码:
import panel as pn
pn.extension()
dashboard_title = pn.panel('## Test Dashboard')
dashboard_footlote = pn.panel('Test Test Test')
dash = pn.Column(dashboard_title, dashboard_footlote)
dash.servable(title="Claims Dashboard")
pn.serve(dash)
当我在 Jupyter 笔记本中运行它时,它会打开一个新的浏览器窗口和其中的仪表板。我尝试通过在地址栏中键入http://10.80.60.31:60840/从另一台计算机访问相同的仪表板。但这并没有说明什么。在 Jupyter 单元中,我收到以下错误:
ERROR:bokeh.server.views.ws:Refusing websocket connection from Origin 'http://10.80.40.41:60840';
use --allow-websocket-origin=10.80.40.41:60840 or set BOKEH_ALLOW_WS_ORIGIN=10.80.40.41:60840 to permit this; currently we allow origins {'localhost:60840'}
我尝试将代码中的最后一行更改为以下内容:
pn.serve(dash, websocket_origin=['10.80.60.31:60840','localhost:60840'])
但是它甚至在本地也不起作用,因为端口发生了变化。它给了我一个错误:
ERROR:bokeh.server.views.ws:Refusing websocket connection from Origin 'http://localhost:58370';
use --allow-websocket-origin=localhost:58370 or set BOKEH_ALLOW_WS_ORIGIN=localhost:58370 to permit this; currently we allow origins {'localhost:60840', '10.80.60.31:60840'}
如果我尝试像这样分配特定端口:
pn.serve(dash, port = 60840, websocket_origin=['10.80.60.31:60840','localhost:60840'])
它甚至没有开始说:
OSError: [WinError 10048] Only one usage of each socket address (protocol/network address/port) is normally permitted
解决方案可能很简单,但我对所有网络内容知之甚少,我什至不知道该谷歌搜索什么。
如果您能指导我如何使其工作,我将不胜感激。