首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >amazon alexa技能不能正常运行python代码

amazon alexa技能不能正常运行python代码
EN

Stack Overflow用户
提问于 2020-01-15 06:03:29
回答 1查看 404关注 0票数 4

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

代码语言:javascript
复制
    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

代码语言:javascript
复制
boto3==1.9.216
ask-sdk-core==1.11.0
bs4==4.8.2
requests==2.22.0

这一切都不是通过亚马逊开发控制台https://developer.amazon.com/alexa/console/ask实现的

EN

回答 1

Stack Overflow用户

发布于 2020-01-22 01:02:51

编辑:我为没有请求您的问题的全部详细信息而道歉

根据我的解释,您的问题与依赖项配置不正确有关。在部署函数时,必须在requriements.txt中列出所有依赖项。为了获得正确的依赖关系,我建议使用pipenv

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

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

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

代码语言:javascript
复制
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中包含boto3和ask-sdk,但是,它们本身就包含在lambda中,因此您不需要这些依赖项。

对于任何不是本机包含在lambda中的库,您将需要遵循此过程。有关本机包含的库的列表,请参阅:Lambda Packages

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59742425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档