You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Heroku部署Python Flask应用时Chromedriver路径及权限报错如何解决?

解决方案

步骤1:添加Heroku专属buildpack

你的路径错误、权限错误核心原因是没有在Heroku的Linux运行环境中正确安装匹配版本的Chrome浏览器和Chromedriver,本地的Windows版chromedriver.exe、通过pip安装的chromedriver包都无法在Heroku环境正常运行。
在项目根目录命令行执行以下两条命令添加官方buildpack:

heroku buildpacks:add --index 1 https://github.com/heroku/heroku-buildpack-google-chrome
heroku buildpacks:add --index 2 https://github.com/heroku/heroku-buildpack-chromedriver

步骤2:修改app.py配置

buildpack安装完成后会自动注入对应环境变量,不需要硬编码任何固定路径,修改代码如下:

from selenium import webdriver
import os

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--no-sandbox')
# 直接读取环境变量即可
chrome_options.binary_location = os.environ.get("GOOGLE_CHROME_BIN")
driver = webdriver.Chrome(executable_path=os.environ.get("CHROMEDRIVER_PATH"), chrome_options=chrome_options)

如果使用selenium 4.x版本,可将最后一行初始化代码替换为兼容写法:

from selenium.webdriver.chrome.service import Service
service = Service(executable_path=os.environ.get("CHROMEDRIVER_PATH"))
driver = webdriver.Chrome(service=service, options=chrome_options)

步骤3:清理无效配置

  • 删掉项目根目录下的本地chromedriver文件(尤其是.exe后缀的Windows版本)
  • 移除requirements.txt里的chromedriver相关依赖,可固定selenium版本避免兼容问题,添加selenium==3.141.0到requirements.txt即可
  • 删掉之前手动设置的CHROMEDRIVER_PATH环境变量,执行命令:
heroku config:unset CHROMEDRIVER_PATH
  • 你之前尝试的OSU服务器本地路径、相对路径在Heroku环境中都不存在,不要硬编码任何本地路径。

步骤4:重新部署

提交修改后的代码推送到Heroku即可:

git add .
git commit -m "修复chromedriver配置"
git push heroku main

内容的提问来源于stack exchange,提问作者Luci Relix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 20:15:04