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

部署含爬虫功能的Streamlit应用至Azure Web App遇WebDriverException错误

解决Azure Web App部署Streamlit爬虫应用的WebDriverException错误

问题根源

状态码127表示系统找不到chromedriver或Chrome/Chromium可执行文件。直接在requirements.txt中添加chromium-browser会导致部署失败,因为这是Debian/Ubuntu系统级包,并非Python包,pip无法解析安装。

分步解决方案

1. 修正requirements.txt

移除chromium-browser,只保留Python依赖包,示例:

streamlit>=1.20.0
selenium>=4.8.0
# 若需seleniumbase,保留但确保版本兼容
# seleniumbase>=4.16.0

2. 在Azure中安装系统级依赖

Azure Web App支持通过启动命令或部署后脚本安装系统包,二选一即可:

方式一:配置启动命令

在Azure门户的Web App → 配置 → 常规设置 → 启动命令中,填入:

apt-get update && apt-get install -y chromium-browser chromium-chromedriver && streamlit run your_app.py --server.port 8000 --server.address 0.0.0.0

替换your_app.py为你的Streamlit应用文件名

方式二:使用部署后脚本

在项目根目录创建post_deploy.sh文件,内容如下:

#!/bin/bash
apt-get update
apt-get install -y chromium-browser chromium-chromedriver

本地执行chmod +x post_deploy.sh赋予执行权限后再上传,Azure会自动在部署后执行该脚本。

3. 配置Selenium使用正确路径

在爬虫代码中指定Chrome二进制文件和chromedriver的系统路径,同时添加适配Azure环境的参数:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

def init_driver():
    options = Options()
    # 无头模式适配Azure容器环境
    options.add_argument('--headless')
    # 禁用沙箱(必需配置)
    options.add_argument('--no-sandbox')
    # 解决/dev/shm空间不足问题
    options.add_argument('--disable-dev-shm-usage')
    # 指定Azure中Chromium的路径
    options.binary_location = '/usr/bin/chromium-browser'
    # 指定chromedriver路径
    driver = webdriver.Chrome(executable_path='/usr/bin/chromedriver', options=options)
    return driver

4. 重新部署应用

将修正后的代码、requirements.txt和(可选)post_deploy.sh重新部署到Azure Web App,即可解决启动时的WebDriverException错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 02:47:12