使用pyvis库时Jupyter Notebook在Chrome/Safari出现本地CDN资源问题
解决Pyvis在Jupyter环境中本地CDN资源加载异常的问题
当在Jupyter Notebook(或Dataspell)中使用Pyvis库的Network(notebook=True)渲染可视化图时,Chrome、Safari及Dataspell内置浏览器均出现本地CDN资源加载异常,无法正常显示图形。复现代码如下:
net = Network(notebook=True) net.add_nodes( [1, 2, 3, 4, 5], # node ids label=['Node #1', 'Node #2', 'Node #3', 'Node #4', 'Node #5'], # node labels # node titles (display on mouse hover) title=['Main node', 'Just node', 'Just node', 'Just node', 'Node with self-loop'], color=['#d47415', '#22b512', '#42adf5', '#4a21b0', '#e627a9'] # node colors (HEX) ) net.add_edges([(1, 2), (1, 3), (2, 3), (2, 4), (3, 5), (5, 1)]) net.show('graph.html')
以下是几种可行的解决方法:
- 方案1:切换到在线CDN资源
Pyvis默认使用本地CDN路径,只需在初始化Network时添加cdn_resources="remote"参数,强制调用在线公共源,绕过本地加载问题:
from pyvis.network import Network net = Network(notebook=True, cdn_resources="remote") net.add_nodes( [1, 2, 3, 4, 5], label=['Node #1', 'Node #2', 'Node #3', 'Node #4', 'Node #5'], title=['Main node', 'Just node', 'Just node', 'Just node', 'Node with self-loop'], color=['#d47415', '#22b512', '#42adf5', '#4a21b0', '#e627a9'] ) net.add_edges([(1, 2), (1, 3), (2, 3), (2, 4), (3, 5), (5, 1)]) net.show('graph.html')
- 方案2:关闭Notebook模式,直接打开生成的HTML
如果在线CDN访问受限,可关闭notebook模式,生成独立HTML文件后手动打开:
net = Network(notebook=False) # 节点、边添加代码不变 net.show('graph.html')
执行后会在当前工作目录生成graph.html,双击文件用浏览器打开即可正常显示图形。
- 方案3:手动指定本地资源路径
若必须使用本地资源,可按以下步骤操作:
- 下载vis.js的完整资源包(需包含vis-network.min.js、vis.min.css等核心文件)
- 将资源解压到Jupyter的工作目录下,比如新建一个
local_cdn文件夹存放 - 初始化Network时指定本地路径:
net = Network(notebook=True, cdn_resources="local", local_dir="local_cdn")
内容的提问来源于stack exchange,提问作者Satori_Tamaba
相关产品推荐
相关产品推荐

