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

Azure部署echo-bot.py遇ModuleNotFoundError:找不到aiohttp模块

解决Azure Echo Bot部署时ModuleNotFoundError: No module named 'aiohttp'的问题

以下是针对性的解决方案,按顺序尝试:

1. 确认压缩包结构正确

确保requirements.txt在echo-bot.zip的根目录,和app.py、.deployment等文件同级。如果requirements.txt在子文件夹中,Oryx构建工具会无法识别,导致依赖未安装。

你可以本地解压echo-bot.zip,检查文件层级是否符合要求。

2. 清除Azure上的构建缓存,强制重新构建

部署缓存可能导致依赖未更新,按以下步骤操作:

  • 登录Azure门户,进入目标Web App,打开高级工具(Kudu),选择Debug console > Bash。
  • 执行以下命令删除旧的虚拟环境和构建 manifest:
    rm -rf /home/site/wwwroot/antenv
    rm /home/site/wwwroot/oryx-manifest.toml
    
  • 重新运行你的部署命令:
    az webapp deployment source config-zip --resource-group "resource_name" --name "service_name" --src "echo-bot.zip"
    

3. 明确指定启动命令使用虚拟环境中的依赖

修改启动命令,确保使用虚拟环境内的gunicorn和依赖:

  • 方法1:在Azure门户的Web App配置 > 常规设置中,将启动命令改为:
    /home/site/wwwroot/antenv/bin/gunicorn --bind 0.0.0.0 --worker-class aiohttp.worker.GunicornWebWorker --timeout 600 app:APP
    
  • 方法2:修改.deployment文件,添加启动命令配置:
    [config]
    SCM_DO_BUILD_DURING_DEPLOYMENT = true
    WEBSITE_STARTUP_COMMAND = /home/site/wwwroot/antenv/bin/gunicorn --bind 0.0.0.0 --worker-class aiohttp.worker.GunicornWebWorker --timeout 600 app:APP
    

4. 调整aiohttp版本,确保Python兼容性

日志显示使用Python 3.7.17,虽然aiohttp 3.6.3兼容Python 3.7,但可以尝试升级到同分支的最新兼容版本(如3.8.6),修改requirements.txt:

aiohttp==3.8.6

重新打包后再部署。

5. 检查构建日志定位问题

部署完成后,在Azure门户的Web App部署中心 > 日志中查看构建过程日志,搜索pip install关键字,确认aiohttp是否被成功安装。如果有安装失败的报错(如网络问题、依赖冲突),根据报错信息针对性处理。


内容的提问来源于stack exchange,提问作者João Abrantes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 18:39:53