我正在尝试使用autoload_static将其数据嵌入到我想要在我的计算机上本地读取的简单html页面中。根据我在文档中的内容,我只需要将.js文件放在指定的文件夹中,然后在html中插入标记。 但firefox正在给我下一个错误: “无法加载库http://cdn.pydata.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>
答案 0 :(得分:3)
你是如何安装Bokeh的?看起来你已经从GitHub结帐安装了? (这不是标准的Bokeh版本号,它看起来像GH哈希)。标准resources.CDN
资源对象尝试使用当前散景版本来确定要从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提交尽可能详细的报告。