2017-10-15 13 views
1

私はMetthew Rocklin blogpostの最初の例を再現しようとしています。実行中のbokehサーバで空のページが表示されるのはなぜですか?

Bokehサーバーを実行する方法についての説明は包括的ですが、それでも動作させることはできません。 Windowsはコマンドでシェル「ボケbig_bokeh_test.py --showに仕える」に私は次のスクリプトを実行しています:

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): 
    fig = figure(title='Line plot!', sizing_mode='scale_width') 
    fig.line(x=[1, 2, 3], y=[1, 4, 9]) 

    doc.title = "Hello, world!" 
    doc.add_root(fig) 

apps = {'/': Application(FunctionHandler(make_document))} 

server = Server(apps, port=5000) 
server.start() 

は誤りがないと、サーバーは、出力が空ページであることだけが、実行されています。私は解決策を探しました。以下のリンクは関連している可能性がありますが、私の問題を解決しませんでした:

How to get a Bokeh Server to display a DataTable

Bokeh Server not displaying plots

bokeh serve running but can't access with browser

私は、Python 3.6.3(64)とボケ0.12.9を使用しています。そして、ここの窓からの出力はシェルです:

PS C:\Users\kateryna.smirnova\Documents\IBB\bokeh_graphs> bokeh serve big_bokeh_test.py --show 
2017-10-14 10:48:00,231 Starting Bokeh server version 0.12.9 (running on Tornado 4.5.2) 
2017-10-14 10:48:00,235 Bokeh app running at: http://localhost:5006/big_bokeh_test 
2017-10-14 10:48:00,235 Starting Bokeh server with process id: 564 
2017-10-14 10:48:00,445 Starting Bokeh server version 0.12.9 (running on Tornado 4.5.2) 
2017-10-14 10:48:00,469 200 GET /big_bokeh_test (::1) 137.37ms 
2017-10-14 10:48:00,785 101 GET /big_bokeh_test/ws?bokeh-protocol-version=1.0&bokeh-session-id=ERMj5xsMHtF7o3P6KxRRrPDfIMAvIhMcNffgxuct4950 (::1) 1.03ms 
2017-10-14 10:48:00,786 WebSocket connection opened 
2017-10-14 10:48:00,788 ServerConnection created 

答えて

0

あなたは

bokeh serve script.py 

でこれを実行していますか?そうであれば、この使用方法には正しくありません。明示的なServerApplicationでの利用メートルのこのスタイルは、物事は次のように実行することができるように、プログラムでボケサーバを埋め込むためのものです:私はそのようにそれを実行

python script.py 

は、スクリプトはすぐに存在し、何の接続はなることはできません製。私はコードからこれを期待します。スクリプトが継続的に実行し、提供したい場合は、スクリプトの最後にこれを置くことによってトルネードioloopを開始する必要があります。

server.io_loop.start() 

私はこれを行うと、私は接続を開き、プロットを見ることができます。あなたは、物事にbokeh serveスタイルを実行したい場合は

あるいは、あなたはまったくServerまたはApplicationビットのいずれかを必要としませんが、(これは、なぜ何もありませんadd_rootcurdocにプロットを追加する必要がありますが表示されている場合は、curdocに追加しない限り、空のドキュメントを提供しています)。ここでbokeh serveを実行するための完全なコードサンプルです:この

from bokeh.io import curdoc 
from bokeh.plotting import figure, ColumnDataSource 

fig = figure(title='Line plot!', sizing_mode='scale_width') 
fig.line(x=[1, 2, 3], y=[1, 4, 9]) 

curdoc().title = "Hello, world!" 
curdoc().add_root(fig) 

多くは、ユーザーズガイドのRunning a Bokeh Server setionに記載されています。

+0

私は、うまく動作するadd_rootでcurdocを使用しています。ありがとうbigreddot。 – kateryna

関連する問題