Heroku部署报错:Chromedriver Buildpack提示‘End-of-central-directory signature not found’
Heroku部署Python爬虫应用:Chromedriver下载失败修复方案
核心修复步骤
锁定Chrome与Chromedriver匹配版本
不要使用LATEST,手动匹配版本:- 查看Heroku构建日志中Chrome的安装版本(比如
Installing google-chrome-stable 118.0.5993.70) - 找到对应版本的Chromedriver(两者主版本必须完全一致)
- 在Heroku应用设置中添加两个环境变量:
GOOGLE_CHROME_VERSION=找到的Chrome版本号CHROMEDRIVER_VERSION=对应Chromedriver版本号
- 查看Heroku构建日志中Chrome的安装版本(比如
清理Heroku构建缓存
本地终端执行命令清除缓存,避免损坏文件残留:heroku builds:cache:purge -a 你的应用名称之后重新推送代码触发构建。
更换整合型构建包
替换原有的两个分开构建包,改用自动匹配版本的整合包,修改buildpacks为:https://github.com/heroku/heroku-buildpack-python https://github.com/weibeld/heroku-buildpack-chrome这个构建包会自动同步Chrome和Chromedriver版本,减少下载异常。
切换Chromedriver下载源
如果官方源访问不稳定,添加自定义下载源:- 在项目根目录创建
.profile.d/chromedriver.sh,内容:export CHROMEDRIVER_URL="https://npm.taobao.org/mirrors/chromedriver/${CHROMEDRIVER_VERSION}/chromedriver_linux64.zip" - 将该文件加入Git并推送,构建时会从国内镜像下载。
- 在项目根目录创建
验证部署结果
部署完成后,通过终端进入Heroku容器验证:
heroku run bash -a 你的应用名称 # 进入后执行 chromedriver --version google-chrome --version
确认两者版本一致且能正常输出信息。
内容的提问来源于stack exchange,提问作者sscla
相关产品推荐
相关产品推荐

