amazon alexa skill未正确运行正常运行的python代码

2024-05-13 12:21:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用python学习一个简单的amazon alexa技能。 我已经为这个简单的应用程序编写了所有代码,并将其加载到lambada函数中 我已经测试过lambada已经加载了我导入的库,并且可以使用它们,但是当我使用最后的代码时,它会遇到“请求的技能响应问题”

    def handle(self, handler_input):
        # type: (HandlerInput) -> Response

        # https://repl.it/repls/UselessOptimalPipeline

        url = "http://jokepro.dx.am/"

        source = requests.get(url)
        bs4call = bs4.BeautifulSoup(source.text, "html.parser")

        obj = bs4call.find('object')

        text = requests.get(url + obj['data']).text
        # print(text) # <-- to print the textfile

        finalJoke = random.choice(text.splitlines())

        speak_output = finalJoke

        return (
            handler_input.response_builder
                .speak(speak_output)
                #.ask()
                .response
        )

这是处理函数

lambada是否与代码中的任何内容相冲突?为什么它不起作用

更新:这里有一些相关信息

requirements.txt

boto3==1.9.216
ask-sdk-core==1.11.0
bs4==4.8.2
requests==2.22.0

Not Giving any response which signifies an error...

这都是通过amazon开发控制台https://developer.amazon.com/alexa/console/ask实现的


Tags: 代码texthttpsurlsourceamazoninputget
1条回答
网友
1楼 · 发布于 2024-05-13 12:21:51

编辑: 我很抱歉没有要求你提供你问题的全部细节

根据我的过期时间,您的问题与未正确配置依赖项有关。部署函数时,所有依赖项必须在^{中列出。为了获得正确的依赖关系,我建议使用pipenv

例如,以下命令将显示项目的完整依赖关系树:

  • pipenv install requests
  • pipenv install bs4
  • pipenv lock -r > requirements.txt

这些命令的结果显示添加这两个库后requirements.txt文件具有以下依赖关系:

beautifulsoup4==4.8.2
bs4==0.0.1
certifi==2019.11.28
chardet==3.0.4
idna==2.8
requests==2.22.0
soupsieve==1.9.5
urllib3==1.25.8

所有这些都是项目正确导入模块所必需的。当然,您还需要在requirements.txt中使用bot3和ask sdk,但是,它们本机包含在lambda中,因此您不需要依赖项

对于本机未包含在lambda中的任何库,您需要遵循以下步骤。有关本机包含的库的列表,请参见:Lambda Packages

相关问题 更多 >