我使用Bokeh应用程序做了很多工作。我需要一步一步地调试它们并交付它们。 (如果相关,我习惯在eclipse IDE中工作,PyDev提供的Python调试模式对我来说很方便。)
但是当我发送我的应用时,我会通过bokeh serve --show myapp
启动它。
这不允许在命令行中启动eclipe的任何调试模式。
当我想调试我的应用程序时,我在终端中单独启动bokeh serve
命令,在eclipse端,我运行我的应用程序,该应用程序以下面的代码片段结束,专用于调试模式(基于arg打开) ):
session = push_session(curdoc())
session.show() # open the document in a browser
session.loop_until_closed() # run forever
是否可以通过常用方式启动散景应用,无论是使用还是调试?换句话说,我可以完全依赖python代码来提供我的散景应用程序,而无需依赖额外的命令行吗?
谢谢!
答案 0 :(得分:0)
对于bokeh v0.12.6,可能是:
import random
from tornado.ioloop import IOLoop
from bokeh.server.server import Server
from bokeh.application import Application
from bokeh.application.handlers.function import FunctionHandler
from bokeh.plotting import figure, ColumnDataSource
def make_document(doc):
source = ColumnDataSource({'x': [], 'y': [], 'color': []})
def update():
source.stream({'x': [random.random()], 'y': [random.random()], 'color': [random.choice(['red', 'blue', 'green'])]})
doc.add_periodic_callback(update, 100)
fig = figure(title = 'Streaming Circle Plot!', sizing_mode = 'scale_both')
fig.circle(source = source, x = 'x', y = 'y', color = 'color', size = 10)
doc.add_root(fig)
io_loop = IOLoop.current()
server = Server({'/myapp': Application(FunctionHandler(make_document))}, port = 5001, io_loop = io_loop)
server.start()
server.show('/myapp')
io_loop.start()