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

Azure App Service能否自定义文件结构将app.py放在src目录下

Azure App Service Python Flask 自定义项目结构配置说明

Azure App Service 完全支持自定义Python项目文件结构,之前部署后显示默认欢迎页,核心原因是Azure Python运行时默认只会在项目根目录查找app.py/application.py作为启动入口,找不到自定义路径下的入口文件时,就会回退显示内置的默认模板页。

如果需要将Flask入口文件(如app.py/main.py)放在src这类子目录下,按以下步骤配置即可:

必要配置项

  • 配置自定义启动命令
    Azure App Service 启动Python Flask应用默认使用gunicorn作为Web服务器,只需要明确指定入口文件的模块路径即可,两种配置方式二选一:
    1. 直接在Azure门户配置:进入对应App Service资源页,左侧菜单选择「配置」-「常规设置」,拉到页面最下方的「启动命令」输入框,填入对应命令后保存,应用会自动重启生效。
      如果入口文件路径是src/app.py,文件内Flask实例变量名为app,启动命令填:
      gunicorn --bind=0.0.0.0 --timeout 600 src.app:app
      
      如果入口文件是src/main.py,实例名为app,命令对应改成gunicorn --bind=0.0.0.0 --timeout 600 src.main:app即可,冒号后面对应代码里Flask实例的变量名,实例名是application就替换成对应名称。
    2. 本地添加启动脚本配置:在项目根目录新建startup.sh文件,写入上面的gunicorn启动命令,之后在门户的启动命令框填入bash startup.sh保存即可,适合需要把启动配置纳入代码版本管理的场景。
  • 给子目录添加包标识
    在src目录下新建一个空的__init__.py文件,确保Python运行时可以将src识别为可导入的模块包,避免启动时出现「找不到对应模块」的报错。
  • 确认依赖文件位置
    requirements.txt必须放在部署的项目根目录下,Azure部署时默认会在根目录扫描这个文件安装依赖,位置不对会导致依赖缺失、应用启动失败。
  • 确认VS Code部署路径
    用VS Code部署时,要选择包含src目录、requirements.txt、启动脚本的项目根目录作为部署源,不要选到上层或下层目录,否则会出现文件结构错位、找不到入口的问题。

验证方式

配置完成后如果不确定是否生效,可以在App Service左侧菜单选择「日志流」,查看实时启动日志,看到gunicorn启动成功、无模块导入类报错后,再访问应用地址就不会出现默认欢迎页了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 22:42:14