Bokeh服务允许使用绘图和小部件编写快速Web应用程序。当我使用bokeh serve --show code.py
时,如何调试python代码?
我不是一个真正的IDE用户,因此我无法真正说出如何使用pycharm和运行应用程序的bokeh serve app.py
方式。然而,从0.12.4
开始,现在有embedding a Bokeh server as a library的指导和例子。特别是你可以创建一个以“正常”方式运行的app.py
:
python app.py
我的猜测是,这种做事方式可能会更好地与IDE一起使用。
作为参考,她是一个完整的“独立脚本”嵌入:
import numpy as np
from tornado.ioloop import IOLoop
from bokeh.application.handlers import FunctionHandler
from bokeh.application import Application
from bokeh.layouts import column
from bokeh.models import ColumnDataSource, Slider
from bokeh.plotting import figure
from bokeh.server.server import Server
io_loop = IOLoop.current()
def modify_doc(doc):
x = np.linspace(0, 10, 1000)
y = np.log(x) * np.sin(x)
source = ColumnDataSource(data=dict(x=x, y=y))
plot = figure()
plot.line('x', 'y', source=source)
slider = Slider(start=1, end=10, value=1, step=0.1)
def callback(attr, old, new):
y = np.log(x) * np.sin(x*new)
source.data = dict(x=x, y=y)
slider.on_change('value', callback)
doc.add_root(column(slider, plot))
bokeh_app = Application(FunctionHandler(modify_doc))
server = Server({'/': bokeh_app}, io_loop=io_loop)
server.start()
if __name__ == '__main__':
print('Opening Bokeh application on http://localhost:5006/')
io_loop.add_callback(server.show, "/")
io_loop.start()
我是这样做的:
serve --show /full/path/to/viz.py --args myargs
这打开了一个浏览器窗口http://localhost:5006/viz并停在viz.py
内设置的断点处
希望对你有用
散景也可以通过python -m bokeh
运行,因为你可以打开运行/调试配置对话框并将解释器选项设置为-m bokeh serve --show
,你的脚本将按原样运行
另一种方法是运行没有参数的散景服务
bokeh serve
并将您的应用程序推送到服务器。这允许您直接调试python脚本:
def update():
...
...
curdoc().add_periodic_callback(update,500)
session=push_session(curdoc())
session.show(plot)
session.loop_until_closed()
您将收到有关push_session的警告,并且不鼓励使用loop_until_closed。但是出于调试目的,它运行良好。