Как запустить приложение Bokeh в блокноте Jupyter?

Я хочу создать и запустить приложение боке в блокноте Jupyter. Чтобы попробовать, я загрузил код из учебника по боке.

from bokeh.io import output_notebook, show
output_notebook()
from bokeh.layouts import column
from bokeh.models import TextInput, Button, Paragraph

def modify_doc(doc):

    # create some widgets
    button = Button(label="Say HI")
    input = TextInput(value="Bokeh")
    output = Paragraph()

    # add a callback to a widget
    def update():
        output.text = "Hello, " + input.value
    button.on_click(update)

    # create a layout for everything
    layout = column(button, input, output)

    # add the layout to curdoc
    doc.add_root(layout)

# In the notebook, just pass the function that defines the app to show
# You may need to supply notebook_url, e.g notebook_url="http://localhost:8889" 
show(modify_doc, notebook_url="http://localhost:8888") 

Когда я запускаю его в блокноте Jupyter, я получаю сообщение об ошибке ниже:

ОШИБКА: tornado.application: Неперехваченное исключение в / ws Traceback (последний вызов последним): файл «C: \ ProgramData \ Anaconda3 \ lib \ site-packages \ tornado \ websocket.py», строка 494, в _run_callback result = callback ( * args, ** kwargs) Файл "C: \ Users \ 123058850 \ AppData \ Roaming \ Python \ Python36 \ site-packages \ bokeh \ server \ views \ ws.py", строка 121, открыт, если self.selected_subprotocol! = 'bokeh': AttributeError: объект 'WSHandler' не имеет атрибута 'selected_subprotocol'

Не могли бы вы помочь мне понять, что не так?


person Luftuq    schedule 29.05.2020    source источник


Ответы (1)


Если кажется, что в вашей среде, у вас как-то установлена ​​старая версия Tornado. tornado.websocket.WebSocketHandler.selected_subprotocol появился в Торнадо 5.1.

person Eugene Pakhomov    schedule 29.05.2020