将Flask应用部署至Azure App Service遇requests模块缺失错误求助
解决Azure App Service部署Flask应用时的
ModuleNotFoundError: No module named 'requests'问题 核心原因
你的requirements.txt文件里没有包含requests依赖包。虽然你用了pip freeze > requirements.txt生成依赖清单,但大概率是生成时requests没有安装在当前执行环境中(比如没激活虚拟环境就执行了命令),导致依赖没被写入文件。
修复步骤
本地补充依赖并更新requirements.txt
- 激活你的本地开发虚拟环境(如果使用了的话):
source venv/bin/activate # Linux/macOS # 或 venv\Scripts\activate # Windows - 安装
requests:pip install requests - 重新生成依赖清单:
pip freeze > requirements.txt - 将更新后的
requirements.txt提交并推送到GitHub仓库。
- 激活你的本地开发虚拟环境(如果使用了的话):
优化GitHub流水线配置(可选但推荐)
你的流水线可以调整得更规范,避免依赖安装的潜在问题:- 取消注释虚拟环境创建步骤,确保依赖安装在隔离环境中:
- name: Create and start virtual environment run: | python -m venv venv source venv/bin/activate - 安装依赖时指定目标目录,让Azure App Service能正确识别依赖位置:
- name: Install dependencies run: pip install --target ./python_env -r requirements.txt - 上传构建产物时包含
python_env目录:- name: Upload artifact for deployment jobs uses: actions/upload-artifact@v2 with: name: python-app path: | . !venv/ python_env/
- 取消注释虚拟环境创建步骤,确保依赖安装在隔离环境中:
验证Azure部署逻辑
你已经设置了SCM_DO_BUILD_DURING_DEPLOYMENT: 1,这个环境变量会让Azure App Service在部署时自动执行pip install -r requirements.txt,只要你的requirements.txt包含requests,部署过程就会自动安装该依赖。
验证方法
- 本地执行
pip install -r requirements.txt后启动Flask应用,确认不再出现requests相关的导入错误。 - 检查GitHub仓库中的
requirements.txt,确保里面有类似requests==2.31.0(对应你安装的版本)的条目。
内容的提问来源于stack exchange,提问作者user13217309
相关产品推荐
相关产品推荐

