我用于开发bokeh目录应用程序的设置涉及四个文件:
my_app/
-- main.py
-- main_debug.py
-- init_main.py
-- app_hooks.py
main.py
和main_debug.py
分别只是bokeh serve
和我的IDE调试模式的入口点。两者都仅从init_main_doc
调用init_main.py
。工作良好。最近,我将应用程序钩子on_server_loaded(server_context: BokehServerContext)
添加到了我的应用程序。
如何修改main_debug.py
,以便以与启动main.py
时相同的方式执行应用挂钩?文件的内容如下。
main.py
from bokeh.plotting import curdoc
from init_main import init_main_doc
doc = curdoc()
init_main_doc(doc=doc)
main_debug.py
from bokeh.application import Application
from bokeh.application.handlers.function import FunctionHandler
from bokeh.server.server import Server
from tornado.ioloop import IOLoop
from init_main import init_main_doc
if __name__ == '__main__':
io_loop = IOLoop.current()
server = Server(applications={'/app': Application(FunctionHandler(init_main_doc))}, io_loop=io_loop, port=5001)
server.start()
server.show('/app')
io_loop.start()
init_main.py
def init_main_doc(doc: Document):
...
doc.add_root(tabs)
doc.title = 'my project'
答案 0 :(得分:0)
@EugenePakhomov的建议,而不是调试main_debug.py
,我可以直接调试脚本bokeh
。