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

Azure WebApp部署FastAPI启动失败:app.py位于test文件夹

解决Azure WebApp部署FastAPI(app在子目录)的启动命令问题

问题排查与解决方案

1. 先确认依赖是否真的安装成功

Azure WebApp的Python环境可能存在路径隔离问题,别光看DevOps管道的日志,直接连到实例验证:

  • 进入WebApp的高级工具 > SSH,执行pip list查看是否有uvicorn。如果没有,说明部署管道的pip install -r requirements.txt步骤可能没生效——检查管道里的命令是否指向了正确的requirements.txt路径,比如如果文件在根目录,命令要确保是在根目录下执行的。

2. 修正启动命令的正确写法

当app.py在test子目录时,正确的启动命令应该是:

python -m uvicorn test.app:app --host 0.0.0.0 --port 8000

注意两点:

  • 必须显式指定--port 8000,Azure WebApp默认监听这个端口,不指定的话服务无法被外部访问
  • 确保test目录下有__init__.py(空文件就行),让Python把这个目录识别为合法模块,否则test.app的写法会报错

3. 检查启动命令的配置与脚本权限

如果用startup.sh脚本:

  • 脚本内容要写对:
    #!/bin/bash
    python -m uvicorn test.app:app --host 0.0.0.0 --port 8000
    
  • 上传后必须给脚本加执行权限:在SSH里执行chmod +x startup.sh,再把WebApp的启动命令设为./startup.sh

4. 看日志找具体错误

别盯着“应用程序错误”发呆,直接看日志流:

  • 进入WebApp > 监测 > 日志流,实时查看启动时的报错信息——比如是模块找不到、端口被占,还是依赖缺失,日志会给明确提示,这是最快定位问题的方法

5. 确认项目结构

你的项目结构必须是这样的:

根目录/
├── test/
│   ├── __init__.py
│   └── app.py
├── requirements.txt

且app.py里的FastAPI实例必须是app = FastAPI(),这样test.app:app才能正确指向这个实例


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 12:33:17