Python 3.x 如何让Bokeh服务器显示数据表

Python 3.x 如何让Bokeh服务器显示数据表,python-3.x,bokeh,Python 3.x,Bokeh,我可以让DataTable显示在Jupyter笔记本中,而不会出现任何问题。但是我无法通过服务器(curdoc().add_root())显示它。当我尝试访问它时,服务器窗口中没有任何错误,浏览器上只有一个空白页。我只看到以下几点: 2017-04-23 16:07:51,188 Starting Bokeh server on port 5006 with applications at paths ['/myapp'] 2017-04-23 16:07:51,188 Starting Bok

我可以让DataTable显示在Jupyter笔记本中,而不会出现任何问题。但是我无法通过服务器(curdoc().add_root())显示它。当我尝试访问它时,服务器窗口中没有任何错误,浏览器上只有一个空白页。我只看到以下几点:

2017-04-23 16:07:51,188 Starting Bokeh server on port 5006 with applications at paths ['/myapp']
2017-04-23 16:07:51,188 Starting Bokeh server with process id: 7484
2017-04-23 16:07:55,365 200 GET /myapp (172.17.13.2) 188.14ms
2017-04-23 16:07:55,887 WebSocket connection opened
2017-04-23 16:07:55,888 ServerConnection created
下面是服务器正在运行的内容,当在笔记本中时,它将被替换为显示它所需的调用(output_notebook(),show(layout)):


我使用的是Python 3.4.2和Bokeh服务器版本0.12.5。我对这一点还不太熟悉,因此非常感谢您提供的任何帮助,解释为什么它可能没有显示。

似乎您无法在bokeh服务器的主函数中调用curdoc函数。main.py必须在文件末尾具有curdoc函数。这起作用了

作为pd进口熊猫 从bokeh.plotting导入图形 从bokeh.models导入ColumnDataSource、TextInput、按钮、面板、选项卡、标签、DataTable、TableColumn 从bokeh.layouts导入行、列、widgetbox 从bokeh.io导入curdoc、显示、输出\u笔记本、gridplot 从sqlalchemy导入创建引擎

engine = create_engine('postgresql+psycopg2://username:password@domain.local:5432/dbname')

def retreive_descriptions():
    df = pd.read_sql(sql='SELECT description from public."Description_Categories" WHERE category=\'Unknown\'', con=engine)

    cds = ColumnDataSource(df)

    columns = [TableColumn(field='description', title='Description'),TableColumn(field='category', title='Category')]

    cat_data = DataTable(source=cds, columns=columns, editable=True)

    return cat_data

curdoc().add_root(gridplot([[retreive_descriptions()]]))

另外,我能够在bokeh服务器上加载一个正常的数字,目前没有任何问题。由于无法显示DataTable/gridplot.Right,Bokeh服务器在运行服务器应用程序时未设置
\uuuu name\uuuu
,因此“主检查”将失败(即不执行)。
curdoc
不必在末尾,只需不在主检查中即可。感谢您澄清原因,我仍然掌握了一些细节。最后我指的是特定的代码流。Bokeh服务器可能应该设置
\uuu name\uuu
,但首先需要进行一些调查。欢迎在GH上发表一篇文章讨论:
engine = create_engine('postgresql+psycopg2://username:password@domain.local:5432/dbname')

def retreive_descriptions():
    df = pd.read_sql(sql='SELECT description from public."Description_Categories" WHERE category=\'Unknown\'', con=engine)

    cds = ColumnDataSource(df)

    columns = [TableColumn(field='description', title='Description'),TableColumn(field='category', title='Category')]

    cat_data = DataTable(source=cds, columns=columns, editable=True)

    return cat_data

curdoc().add_root(gridplot([[retreive_descriptions()]]))