Plotly fig.write_image()运行无响应,无法生成静态图片
问题描述
环境配置:
- Python 3.10.11
- Plotly 5.14.1
- Kaleido 0.2.1
- Windows 11 22H2
- VSCode 1.78.2
执行包含fig.write_image('filename.png', format = 'png')的代码时,进程持续运行但无法生成PNG文件,任务管理器显示有3个kaleido.exe进程在后台运行;但使用write_html()处理同一图表可正常生成HTML文件。
最小复现代码:
import plotly.express as px fig = px.line(x=[0,1,2], y=[0,1,2]) fig.write_image("plot.png", format = 'png', width = 500, height = 500, scale = 1, engine = 'kaleido')
已知临时解决办法:将Kaleido降级至0.1.0.post1可恢复正常,但希望保留Kaleido 0.2.1版本解决问题。
针对Kaleido 0.2.1的可行解决办法
1. 手动指定Kaleido可执行文件路径
直接指定kaleido.exe的完整路径,避免环境路径识别异常:
import plotly.express as px from kaleido.scopes.plotly import PlotlyScope fig = px.line(x=[0,1,2], y=[0,1,2]) # 替换为你的Python环境中kaleido.exe的实际路径 scope = PlotlyScope(executable_path=r"C:\你的Python安装路径\Lib\site-packages\kaleido\executable\kaleido.exe") scope.transform(fig, format="png", path="plot.png", width=500, height=500)
2. 关闭VSCode终端持久会话设置
VSCode的终端隔离机制可能导致Kaleido进程通信异常:
- 打开VSCode设置,搜索
terminal.integrated.enablePersistentSessions - 将该选项设为
false,重启VSCode后重新运行代码
3. 清理残留进程并重装Kaleido
- 打开任务管理器,结束所有
kaleido.exe进程 - 卸载当前Kaleido:
pip uninstall kaleido -y
- 无缓存重装Kaleido 0.2.1:
pip install kaleido==0.2.1 --no-cache-dir
- 运行代码前关闭其他占用系统资源的程序
4. 改用conda安装Kaleido
若pip安装存在兼容性问题,尝试用conda安装:
conda install -c plotly kaleido=0.2.1
内容的提问来源于stack exchange,提问作者Konstantin Z
相关产品推荐
相关产品推荐

