如何在调试模式下运行应用程序挂钩?

时间:2020-10-14 13:24:31

标签: python bokeh

我用于开发bokeh目录应用程序的设置涉及四个文件:

my_app/
 -- main.py
 -- main_debug.py
 -- init_main.py
 -- app_hooks.py

main.pymain_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'

1 个答案:

答案 0 :(得分:0)

@EugenePakhomov的建议,而不是调试main_debug.py,我可以直接调试脚本bokeh

相关问题