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

通过GitHub部署Streamlit至Azure Web App时Workflow指令未生效

解决GitHub Actions部署Streamlit到Azure Web App时pip升级/Wheel安装不生效的问题

问题原因分析

  1. 步骤隔离导致虚拟环境未复用:GitHub Actions中每个run步骤都是独立的shell会话,你在“Create and start virtual environment”步骤中激活了虚拟环境,但后续的pip升级、wheel安装等步骤都是在系统全局Python环境中执行的,虚拟环境的激活状态不会跨步骤保留。
  2. 部署时Azure会重新安装依赖:你上传artifact时排除了venv/目录,所以部署到Azure后,Web App会在服务器端重新执行pip install -r requirements.txt,build阶段的pip升级和wheel安装操作不会影响到服务器上的依赖安装过程。

解决方案

方案1:在同一个shell会话中完成所有依赖安装操作

将虚拟环境创建、激活、pip升级、wheel安装和依赖安装合并到一个run步骤中,确保所有操作都在虚拟环境内执行(虽虚拟环境不会被部署,但能保证build阶段依赖安装使用最新工具):

- name: Create venv and install dependencies
  run: |
    python -m venv venv
    source venv/bin/activate
    python -m pip install --upgrade pip
    pip install -U wheel setuptools
    pip install -r requirements.txt

方案2:强制Azure服务器端使用最新工具安装依赖

直接在requirements.txt开头指定pip、wheel和setuptools的最低版本,让Azure安装依赖时自动升级这些工具:

# requirements.txt 开头添加
pip>=23.0.1
wheel>=0.40.0
setuptools>=67.0.0

# 你的其他业务依赖
streamlit>=1.28.0
# ...

方案3:自定义Azure部署脚本

在项目根目录创建.deployment文件,指定部署时的执行命令,先升级工具再安装依赖:

[config]
command = pip install --upgrade pip && pip install -U wheel setuptools && pip install -r requirements.txt

额外排查步骤

  • 查看GitHub Actions日志:进入仓库Actions页面,找到对应工作流记录,检查“Upgrade pip”等步骤的输出,确认命令是否执行成功、pip版本是否升级。
  • 核对Azure Python版本:登录Azure门户,进入Web App的“配置 > 常规设置”,确保Python版本与build阶段指定的3.9一致,版本不匹配可能引发依赖异常。
  • 检查Azure部署日志:在Web App的“部署中心”查看服务器端pip install的执行日志,排查是否有报错信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 19:05:05