Мое приложение стало довольно сложным, около 1500 строк в нескольких файлах. Есть кнопка, которая создает вкладки и добавляет их на существующую панель. Вот минимальный рабочий пример того, как работает кнопка:
def create_new_tab():
paragraph = Paragraph(text="Hello!")
tab = Panel(child=paragraph, title="tab")
tab.closable = True
return tab
def append_new_tab():
new_tab = create_new_tab()
curdoc().select_one({'name': 'tabs'}).tabs.append(new_tab)
button = Button(label='append new tab')
button.on_click(append_new_tab)
tab1 = Panel(child=button, title='button tab')
tabs = Tabs(tabs = [tab1], name='tabs')
curdoc().add_root(tabs)
В моей реальной программе где-то есть ошибка, потому что когда я нажимаю кнопку, я получаю сообщение, что некоторый набор изменился во время итерации:
сообщение об ошибке обработки сообщения «СОБЫТИЕ» (редакция 1) содержимое: '{"имя_ события": "button_click", "событие_значения": {"модель_ид": "1002"}}': RuntimeError ('Установить измененный размер во время итерации »)
Я потратил некоторое время на попытки отладки, но безуспешно. Я попытался создать минимальный не работающий пример, но все мои минимальные примеры работают. Я продолжаю смотреть на сообщение об ошибке и задаюсь вопросом, что еще я могу сделать, чтобы выяснить, что идет не так?
Примечание: я уже использую bokeh serve myapp/ --dev