为何在Jupyter-Lab中运行Bokeh需出站网络访问?能否禁用该机制?
解决Jupyter-Lab中Bokeh依赖出站接口渲染的问题
核心原因
Bokeh默认会尝试连接外部CDN加载前端渲染资源,出站接口禁用时无法获取这些资源,导致图表无法正常显示。可以通过配置让Bokeh使用本地内嵌资源,摆脱对出站接口的依赖。
具体解决方法
1. 代码内临时配置(单次生效)
在绘图代码开头添加以下配置,强制Bokeh使用内嵌的本地资源,无需访问外部网络:
from bokeh.io import output_notebook, show from bokeh.resources import INLINE # 指定使用INLINE资源,不依赖外部CDN output_notebook(resources=INLINE)
之后正常编写Bokeh绘图代码即可,禁用出站接口后也能渲染图表。
2. 全局配置(永久生效)
如果不想每次编写代码都手动设置,可以修改Bokeh的全局配置文件:
- 找到Bokeh配置目录:Linux/macOS为
~/.bokeh,Windows为C:\Users\<你的用户名>\.bokeh - 在该目录下创建或编辑
config.yaml文件,添加以下内容:
resources: inline: true
此后所有Jupyter-Lab中的Bokeh代码都会默认使用本地内嵌资源,无需额外配置。
3. 验证配置有效性
运行以下测试代码,确认禁用出站接口后图表能正常渲染:
from bokeh.plotting import figure from bokeh.io import output_notebook, show output_notebook() p = figure(title="测试图表") p.circle([1,2,3], [4,5,6]) show(p)
内容的提问来源于stack exchange,提问作者placid chat
相关产品推荐
相关产品推荐

