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

Azure Function中通过GitHub Actions部署Python版Playwright失败求助

解决GitHub Actions部署Azure Function时Python版Playwright安装失败问题
  • 先搞定虚拟环境里的Playwright安装
    既然用了Linux虚拟环境,必须先激活再执行安装命令,GitHub Actions里得把步骤写死:

    # 假设虚拟环境是.venv,根据你的实际路径调整
    source .venv/bin/activate
    pip install -r requirements.txt
    # 安装Chromium浏览器和系统依赖,Linux下必须装系统依赖
    .venv/bin/python -m playwright install chromium
    .venv/bin/python -m playwright install-deps chromium
    

    直接用虚拟环境里的Python来执行playwright命令,避免PATH没配置导致命令找不到的问题。

  • 调整GitHub Actions工作流,确保浏览器文件被打包部署
    Azure Function默认不会自动包含Playwright下载的浏览器二进制文件,得手动把这些文件加到部署包里,或者通过环境变量指定路径:
    示例工作流片段:

    jobs:
      build-and-deploy:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v4
          
          - name: Set up Python
            uses: actions/setup-python@v5
            with:
              python-version: '3.11' # 匹配你的Azure Function运行时版本
              
          - name: Install dependencies
            run: |
              python -m venv .venv
              source .venv/bin/activate
              pip install --upgrade pip
              pip install -r requirements.txt
              .venv/bin/python -m playwright install chromium
              .venv/bin/python -m playwright install-deps chromium
              
          - name: Copy browser files to deployment root
            run: |
              # 把浏览器目录复制到函数根目录,确保部署时能带上
              cp -r .venv/lib/python3.11/site-packages/playwright/driver/browsers ./
              
          - name: Deploy to Azure Functions
            uses: Azure/functions-action@v4
            with:
              app-name: your-function-app-name
              slot-name: production
              package: .
              publish-profile: ${{ secrets.AZURE_FUNCTIONAPP_PUBLISH_PROFILE }}
    

    同时在Azure Function的应用设置里加个环境变量PLAYWRIGHT_BROWSERS_PATH=0,让Playwright用相对路径找浏览器。

  • 检查requirements.txt
    确保里面明确写了playwright,最好指定稳定版本,比如playwright==1.40.0,避免版本兼容坑。

  • 部署后验证
    部署完去Azure门户的函数控制台跑个测试命令,确认浏览器能启动:

    cd site/wwwroot
    source .python_packages/bin/activate
    python -c "from playwright.sync_api import sync_playwright; with sync_playwright() as p: browser = p.chromium.launch(headless=True); print('Browser started!'); browser.close()"
    

    如果能输出Browser started!,说明安装成功了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 10:17:28