Plotly express运行时Chrome页面加载失败或无法连接,Win10离线使用如何解决
Plotly Express离线使用页面加载失败问题解决方案
问题原因
该问题由两个核心因素导致:
- Plotly默认调用在线CDN加载渲染所需的JS资源,离线环境下无法加载导致页面空白
- 代码调用
show()方法时启动的临时本地服务端口被占用/被系统防火墙拦截,导致出现无法连接报错
解决方案
方案1:修改渲染配置,兼容原有show()调用逻辑
- 导入Plotly的io模块,配置浏览器渲染器默认内嵌完整JS资源,无需联网
- 修改后的代码如下:
import pandas as pd import numpy as np from datetime import datetime import plotly.express as px import plotly.io as pio # 新增离线渲染配置:指定用浏览器打开,且内嵌Plotly JS资源 pio.renderers.default = 'browser' pio.renderers['browser'].config = {'include_plotlyjs': True} def graph(dataframe): figure0 = px.pie(dataframe, values=dataframe['POPULATION'], names=dataframe['CONTINENT']) figure0.show() df = pd.DataFrame({'POPULATION': [60, 17, 9, 13, 1], 'CONTINENT': ['Asia', 'Africa', 'Europe', 'Americas', 'Oceania']}) graph(df)
方案2:生成静态离线HTML(更稳定,无连接报错)
直接将图表生成本地HTML文件,不使用临时本地服务,完全规避端口占用、防火墙拦截问题,离线兼容性更强:
import pandas as pd import numpy as np from datetime import datetime import plotly.express as px import plotly.offline as pyo def graph(dataframe): figure0 = px.pie(dataframe, values=dataframe['POPULATION'], names=dataframe['CONTINENT']) # 生成本地HTML,自动唤起浏览器打开,内嵌全量JS资源 pyo.plot(figure0, filename='continent_pie.html', auto_open=True, include_plotlyjs=True) df = pd.DataFrame({'POPULATION': [60, 17, 9, 13, 1], 'CONTINENT': ['Asia', 'Africa', 'Europe', 'Americas', 'Oceania']}) graph(df)
额外说明
- 内嵌JS资源后生成的HTML文件大小约3MB,属于正常情况,不影响使用
- 如果选择方案1仍偶发连接报错,可直接切换为方案2,静态HTML无需依赖临时本地服务,适配所有离线场景
内容的提问来源于stack exchange,提问作者g_odim_3
相关产品推荐
相关产品推荐

