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

Azure Web App部署Python Flask应用:虚拟环境依赖丢失问题排查

问题分析与解决方案

明显错误点

构建阶段在构建代理机器上创建的antenv虚拟环境,默认不会被打包上传到Azure Web App。Azure Web App的部署流程只会同步你的应用代码文件,代理机器上生成的虚拟环境目录不会自动纳入部署包——这就是为什么SSH中激活的虚拟环境里看不到构建阶段安装的依赖,即使你后来手动确认venv文件夹存在,那也是Web App侧自动生成的空环境,不是构建时的那个。

排查与修复建议

  • 检查部署包内容
    确认构建后的部署包是否包含antenv目录。不管用Azure DevOps还是GitHub Actions,都需要在打包步骤中明确配置将antenv加入到部署归档文件里,否则这个目录不会被传到Web App服务器。
  • 调整构建脚本逻辑
    不需要在构建阶段创建虚拟环境,Azure Web App的Python运行时会自动处理:
    1. 确保requirements.txt放在项目根目录
    2. Web App会自动检测到该文件,创建默认的antenv虚拟环境并安装所有依赖,无需手动在构建脚本中执行python -m venv和pip install
  • 修正--target参数的使用方式
    如果你用pip install --target="./.python_packages/lib/site-packages"安装依赖,这个目录是Web App的全局依赖目录,虚拟环境不会自动识别这里的包。若要使用此方式,需在Web App的应用设置中添加PYTHONPATH环境变量,值设为/home/site/.python_packages/lib/site-packages(Linux)或D:\home\site\.python_packages\lib\site-packages(Windows),而非依赖虚拟环境。
  • SSH环境验证步骤
    1. 激活虚拟环境后,执行which pip和which python,确认输出路径是antenv/bin下的可执行文件,避免误用到系统级的pip/python
    2. 直接查看antenv/lib/python3.11/site-packages目录(对应你的Python版本),确认目标依赖包的文件是否存在
    3. 执行pip freeze替代pip list,对比输出内容,排除显示差异问题
    4. 检查Web App的应用设置,确认没有WEBSITE_VIRTUAL_APPS等配置干扰虚拟环境的路径识别

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 07:31:19