Если вы хотите иметь возможность запускать python foo.py
и не хотите запускать bokeh serve foo.py
, то вам нужно встроить сервер Bokeh в библиотеку .Это требует ручной настройки и запуска Торнадо IOLoop
.Вот полный пример:
from bokeh.plotting import figure
from bokeh.server.server import Server
from tornado.ioloop import IOLoop
def modify_doc(doc):
p = figure()
p.line([1,2,3,4,5], [3,4,2,7,5], line_width=2)
doc.add_root(p)
if __name__ == '__main__':
server = Server({'/bkapp': modify_doc}, io_loop=IOLoop())
server.start()
server.io_loop.start()
В зависимости от того, что вы пытаетесь достичь, вам также может понадобиться встроить это приложение, используя server_document
, или запустить IOLoop
в потоке.Эти варианты использования продемонстрированы в примерах, приведенных в документации.
Вероятно, стоит упомянуть: код, который изменяет документ , запускается только тогда, когда установлено соединение с браузером .(И еще: он запускается каждый каждый раз, когда устанавливается соединение с браузером, для создания нового документа только для этого сеанса.)