Python 如何显示datepicker小部件?

Python 如何显示datepicker小部件?,python,python-3.x,bokeh,Python,Python 3.x,Bokeh,我有以下代码: from bokeh.plotting import curdoc from bokeh.layouts import widgetbox from bokeh.layouts import column as bokehCol from bokeh.models.layouts import Column from bokeh.models.widgets import DatePicker from datetime import date from datetime imp

我有以下代码:

from bokeh.plotting import curdoc
from bokeh.layouts import widgetbox
from bokeh.layouts import column as bokehCol
from bokeh.models.layouts import Column
from bokeh.models.widgets import DatePicker
from datetime import date
from datetime import timedelta as td
from datetime import datetime as dt
from bokeh.io import output_notebook
from bokeh.plotting import show

output_notebook()

crnt_date=dt.now()

dt_pckr_strt=DatePicker(title='Select start of sync date',min_date=date(2017,1,1),max_date=date.today())

def callback(attr,old,new):
    print(type(old))
    print('old was {} and new is {}'.format(old,new))

dt_pckr_strt.on_change('value',callback)
curdoc().add_root(bokehCol(dt_pckr_strt))
show(widgetbox(dt_pckr_strt, width=300))

输出显示怪异,而不是传统的日期选择器。我相信这是在表演中,我犯了一些错误。我哪里出错了?

你没有做错任何事(或多或少——如果你想使用真正的python回调,例如更改
,你必须嵌入一个Bokeh服务器应用程序,但这是另一个问题)。然而,似乎笔记本环境的某些方面阻止了Bokeh date picker小部件的正常运行。使用
output\u file
创建的独立HTML文件中的相同代码具有工作日期选择器。我建议在上提交一份包含所有这些信息的bug报告。不幸的是,我现在没有任何简单的解决办法可以建议

这段代码适合我(修复了将Bokeh服务器嵌入Jupyter笔记本的问题)


它说
应用程序未定义
from bokeh.plotting import curdoc
from bokeh.layouts import widgetbox
from bokeh.layouts import column as bokehCol
from bokeh.models.layouts import Column
from bokeh.models.widgets import DatePicker
from datetime import date
from datetime import timedelta as td
from datetime import datetime as dt
from bokeh.io import output_notebook
from bokeh.plotting import show
from bokeh.application import Application
from bokeh.application.handlers import FunctionHandler

output_notebook()

def modify_doc(doc):

    crnt_date=dt.now()

    dt_pckr_strt=DatePicker(title='Select start of sync date',min_date=date(2017,1,1),max_date=date.today())


    def callback(attr,old,new):
        print(type(old))
        print('old was {} and new is {}'.format(old,new))



    dt_pckr_strt.on_change('value',callback)

    doc.add_root(bokehCol(dt_pckr_strt))


app = Application(FunctionHandler(modify_doc))
show(app) #notebook_url="localhost:8888"