如何在Heroku平台的Python应用中正常使用Playwright实例?
解决方案
核心原因
当前报错的本质是构建阶段Playwright浏览器二进制文件未完成下载:你配置的buildpack执行顺序有误,Playwright buildpack先执行时,Python环境和Playwright依赖包还未安装,无法触发浏览器下载流程,后续Python buildpack安装完Playwright包后,也没有对应步骤下载浏览器。
操作步骤
- 调整buildpack执行顺序
把heroku/python调整为第一个执行的buildpack,Playwright buildpack调整为第二个。你可以直接在Heroku控制台的「Settings」-「Buildpacks」板块拖拽调整顺序即可。
调整后确认顺序为:
- 第一位:heroku/python
- 第二位:Playwright buildpack
- 可选配置:减少构建体积
如果仅使用Chromium浏览器,可在Heroku环境变量中新增PLAYWRIGHT_BUILDPACK_BROWSERS,值设置为chromium,无需下载Firefox、Webkit的二进制文件,大幅缩减构建时间和镜像体积。 - 兜底方案:启动前执行下载
如果调整顺序后仍出现相同报错,可以直接修改你的脚本启动命令,在执行Python脚本前先执行浏览器下载操作。比如原调度命令为python your_script.py,修改为:
playwright install chromium && python your_script.py
额外注意事项
Heroku运行环境无图形界面,启动浏览器时需要显式指定无头模式,否则后续会出现浏览器启动失败报错,修改代码如下:
from playwright.sync_api import sync_playwright with sync_playwright() as p: # 新增headless=True参数 browser = p.chromium.launch(headless=True) page = browser.new_page() page.goto("https://example.com") browser.close()
内容的提问来源于stack exchange,提问作者codlix
相关产品推荐
相关产品推荐

