2

autoload_static を使用して、コンピューターでローカルに読み取りたい単純な html ページにプロットをデータと共に埋め込もうとしています。ドキュメントで作成したものから、指定したフォルダーに .js ファイルを配置し、html にタグを挿入するだけで済みます。しかし、Firefox から次のエラーが表示されます

import numpy as np
from bokeh.plotting import *
from bokeh.objects import PanTool
N = 80

x = np.linspace(0, 4*np.pi, N)
y = np.sin(x)

pantool = PanTool(dimensions=["width", "height"])
plot = line(x,y, color="#0000FF", tools=['wheel_zoom','box_zoom', pantool],
     name="line_example")

from bokeh.resources import CDN
from bokeh.embed import autoload_static


js, tag = autoload_static(plot, CDN,"/Users/john/Desktop/Tests/js/pl.js")

file = open("/Users/john/Desktop/Tests/js", "w")    
file.write(js)
file.close()

print(tag)

そしてhtmlページ:

<!DOCTYPE html>
<html>
<body>

<h1>
Hello World
</h1>

<p><script
    src="/Users/john/Desktop/Tests/js/pl.js"
    id="836fbd4f-68b5-4cdf-8a56-047c2a22af2a"
    async="true"
    data-bokeh-data="static"
    data-bokeh-modelid="line_example"
    data-bokeh-modeltype="Plot"
    data-bokeh-loglevel="info"
></script></p>

</body>
</html>
4

1 に答える 1

3

Bokeh はどのようにインストールしましたか? GitHub チェックアウトからインストールしたようですか? (これは標準の Bokeh バージョン番号ではなく、GH ハッシュのように見えます)。標準resources.CDNリソース オブジェクトは、現在の bokeh バージョンを使用して、CDN から読み込む BokehJS のバージョンを決定しようとします。正式にリリースされたバージョンのみが CDN にアップロードされるためResources.CDN、GH ソースのインストールでは役に立ちません。独自のResourceオブジェクトを作成し、必要なバージョンを次のように渡す必要があります。

myCDN = Resources(mode="cdn", version="0.6.1")

それを に渡しautoload_scriptます。

ただし、現在、新しい現在の GH マスターが以前にリリースされた BokehJS バージョンで動作するという保証はありません。したがって、一般的にこれが機能するという保証はありません。公式の Bokeh リリースを使い続けることを強くお勧めします。

これが公式の Bokeh リリース (conda または PyPI パッケージ) である場合、これは深刻なパッケージングのバグです。https://github.com/bokeh/bokeh/issuesでできるだけ詳細に報告してください。

于 2014-11-05T17:20:42.023 に答える