相当于bokeh serve——用完整的python显示myapp

相当于bokeh serve——用完整的python显示myapp,python,eclipse,bokeh,Python,Eclipse,Bokeh,我经常使用Bokeh应用程序。我需要一步一步地调试它们并交付它们。(如果相关的话,我习惯于在EclipseIDE中工作,PyDev提供的Python调试模式对我来说很方便。) 但当我交付我的应用程序时,我会通过bokeh-service——show myapp启动它 这不允许在命令行中启动eclipe的任何调试模式。 当我想调试我的应用程序时,我在终端中单独启动了bokeh-serve命令,在eclipse端,我运行我的应用程序,该应用程序以以下代码段结束,专用于调试模式(基于arg打开): 这

我经常使用Bokeh应用程序。我需要一步一步地调试它们并交付它们。(如果相关的话,我习惯于在EclipseIDE中工作,PyDev提供的Python调试模式对我来说很方便。)

但当我交付我的应用程序时,我会通过
bokeh-service——show myapp
启动它

这不允许在命令行中启动eclipe的任何调试模式。 当我想调试我的应用程序时,我在终端中单独启动了
bokeh-serve
命令,在eclipse端,我运行我的应用程序,该应用程序以以下代码段结束,专用于调试模式(基于arg打开):

这是否可能有一种通用的方式来启动bokeh应用程序,用于使用或调试?换句话说,我可以完全依赖python代码来交付我的bokeh应用程序,而不依赖额外的命令行吗


谢谢

对于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()

对于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()