部署Flask-SocketIO至Azure遇ModuleNotFoundError的解决求助
解决Azure部署Flask-SocketIO时的ModuleNotFoundError问题
检查requirements.txt的拼写与格式
确保文件里的依赖项拼写完全正确,比如是flask_socketio(下划线连接),没有多余空格、换行或拼写错误。可以直接复制本地环境中pip freeze输出的对应行到requirements.txt里,避免手动输入出错。确认requirements.txt的位置
必须将文件放在项目根目录下,Azure App Service只会自动读取根目录的requirements.txt来安装依赖。如果放在子文件夹中,部署过程会忽略该文件。核对Python版本一致性
本地开发使用的Python版本要和Azure App Service配置的版本一致:- 本地运行
python --version查看版本 - 在Azure门户的App Service -> 配置 -> 常规设置中,将Python版本调整为与本地一致的版本
- 本地运行
查看依赖安装日志排查问题
登录Azure门户,进入App Service的日志流或部署中心,查看部署过程中的依赖安装日志:- 如果日志显示flask_socketio安装失败,可能是网络或源的问题,可以尝试在requirements.txt开头添加国内镜像源:
--index-url https://pypi.tuna.tsinghua.edu.cn/simple/ - 如果日志根本没读取requirements.txt,说明文件位置不对或部署配置有问题
- 如果日志显示flask_socketio安装失败,可能是网络或源的问题,可以尝试在requirements.txt开头添加国内镜像源:
指定依赖的具体版本
在requirements.txt中添加flask_socketio的具体版本号(和本地运行的版本一致),比如:flask_socketio==5.3.6避免因版本兼容性或pip自动安装的版本问题导致依赖缺失。
清理部署缓存并重新部署
- 进入Azure App Service的高级工具(Kudu)
- 打开调试控制台 -> CMD,进入
site/wwwroot目录 - 删除
__pycache__文件夹和venv虚拟环境(如果存在) - 返回Azure门户的部署中心,选择重新部署项目
手动安装依赖(应急方案)
如果自动安装始终失败,可在Kudu的CMD中手动执行安装命令:cd site/wwwroot pip install -r requirements.txt执行后查看输出的错误信息,针对性解决(比如权限问题、依赖冲突等)
内容的提问来源于stack exchange,提问作者M. Atif Altaf
相关产品推荐
相关产品推荐

