2

我正在尝试使用 autoload_static 将带有数据的图嵌入到我想在计算机上本地读取的简单 html 页面中。根据我在文档中所做的,我只需将 .js 文件放在指定的文件夹中并将标签插入到 html 中。但是Firefox给了我下一个错误:“无法加载库http://cdn.bokeh.org/bokeh-114a47707b567971f835c5877d2be44ea4e57fef.min.js ” pl.js:21

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

你是如何安装散景的?看起来您是从 GitHub 结帐安​​装的?(这不是标准的 Bokeh 版本号,它看起来像 GH 哈希)。标准resources.CDN资源对象尝试使用当前的 bokeh 版本来确定要从 CDN 加载的 BokehJS 的版本。只有官方发布的版本会上传到 CDN,因此Resources.CDN对于 GH 源安装没有用处。您必须创建自己的Resource对象并传入所需的版本,例如:

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

然后将其传递给autoload_script.

但是,目前无法保证新的当前 GH master 可以与之前发布的 BokehJS 版本一起使用。因此,一般来说,也不能保证这也能奏效。我强烈建议坚持使用官方 Bokeh 版本。

如果这是官方的 Bokeh 版本(conda 或 PyPI 包),那么它是一个严重的打包错误,请在https://github.com/bokeh/bokeh/issues提交一份报告,并提供尽可能详细的信息。

于 2014-11-05T17:20:42.023 回答