在查找“aiohttp.web”的模块规范时发出 azure 测试聊天机器人“错误(ModuleNotFoundError:没有名为“aiohttp”的模块)

Posted

技术标签:

【中文标题】在查找“aiohttp.web”的模块规范时发出 azure 测试聊天机器人“错误(ModuleNotFoundError:没有名为“aiohttp”的模块)【英文标题】:Issue azure test chat bot " Error while finding module specification for 'aiohttp.web' (ModuleNotFoundError: No module named 'aiohttp') 【发布时间】:2022-01-16 14:19:57 【问题描述】:

我在尝试使用 azure test 聊天机器人时遇到了一些问题:

我通过 github 操作将我的机器人部署在 azure web 应用程序上,一切都很好。 但是当我尝试测试我的聊天机器人时,什么都没有发生,这会引发错误。

我尝试使用不同的 python 版本和不同的需求版本。 我在 config.py 文件中配置了 8000 端口、app_id 和 password_id。

我的网络应用程序使用此命令配置了他的常规参数:

 python -m aiohttp.web -H 0.0.0.0 -P 8000 app:init_func

好像azure找不到aiohttp。 (它在本地主机上完美运行) 感谢您的帮助。

Errorapp.pyrequirement.txt

【问题讨论】:

【参考方案1】:

默认情况下,Kudu 假定 zip 部署不需要任何与构建相关的操作,例如 npm installdotnet publish。所以这种情况下的原因可能是pip installation没有得到妥善处理。

要让它自动安装requirements.txt文件中所有需要的包,我们可以简单地将appsettings中的SCM_DO_BUILD_DURING_DEPLOYMENT设置为true,然后再次部署。

需要像这样设置启动命令

gunicorn --bind 0.0.0.0 --worker-class aiohttp.worker.GunicornWebWorker --timeout 600 app:APP

正确配置MicrosoftAppIdMicrosoftAppPassword

详情请咨询Reference。

【讨论】:

【参考方案2】:

部署后似乎无法安装需求。 原因是即使在工作流程中有一条好的路径,路径也不好。

解决方案: 我从另一个 repo 重新部署,其中 requirements.txt 在工作目录中。 之后,我允许带有“*”的 cors 获得所有源访问权限。 我还阻止了 aiohttp 到 3.6.2 我启动了网络聊天,它可以工作 new_requirementsCORS

【讨论】:

以上是关于在查找“aiohttp.web”的模块规范时发出 azure 测试聊天机器人“错误(ModuleNotFoundError:没有名为“aiohttp”的模块)的主要内容,如果未能解决你的问题,请参考以下文章

aiohttp--web框架session路由cryptography

aiohttp web.response 正文为 json

aiohttp web方式提供文件下载服务

模块循环导入问题,区分py文件的两种用途,模块的搜索路径与查找优先级,软件开发的目录规范

如何从 minos 中的 RestRequest 访问 aiohttp 的请求

1.模块2.循环导入问题及解决思路3.区分py文件的两种类型4.模块的查找顺序5.模块的绝对导入与相对导入6.项目开发的目录规范