求助:Google Colab中Altair保存PNG时反复出现MaxRetryError的解决方案
解决Colab中Altair保存PNG出现MaxRetryError的方案
问题根源
多次保存图表后,Selenium的Chrome驱动实例未被正确释放,导致本地连接池耗尽,新连接被拒绝。
方案1:手动管理Selenium驱动实例
手动初始化Chrome驱动,复用实例并在使用完成后主动关闭,避免连接泄漏:
from altair_saver import save from selenium import webdriver from selenium.webdriver.chrome.options import Options # 配置Colab适配的Chrome无头模式选项 chrome_options = Options() chrome_options.add_argument('--headless') chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--disable-dev-shm-usage') # 初始化驱动(仅需执行一次) driver = webdriver.Chrome(options=chrome_options) # 保存单个或多个图表 save(your_altair_chart, 'output.png', method='selenium', driver=driver) # 可多次调用save复用同一个driver # 所有保存操作完成后,关闭驱动释放资源 driver.quit()
方案2:清理残留进程(已出现错误时急救)
若已触发连接拒绝错误,先强制清理Colab环境中残留的Chrome和chromedriver进程,再重新初始化驱动:
!pkill chrome !pkill chromedriver
方案3:替换为Node.js保存方法(无需Selenium)
切换到不需要Selenium的保存方式,避免连接问题:
- 安装依赖:
!pip install altair_saver !apt-get install nodejs npm -y !npm install -g vega-lite vega-cli canvas
- 保存图表:
from altair_saver import save save(your_altair_chart, 'output.png', method='node')
内容的提问来源于stack exchange,提问作者KolvacS
相关产品推荐
相关产品推荐

