【问题标题】:How to import a Python library into Alexa Skill如何将 Python 库导入 Alexa Skill
【发布时间】:2021-01-30 15:22:46
【问题描述】:

我只是想将随机库导入到我的 Alexa Skill 中,但每次我尝试在我的 lambda 函数代码中使用它时都会收到“请求的技能响应有问题”(例如 index = random.randrange(len(array)) )。我已经看到了从简单地将库放入您的 requirements.txt 到使用 zip 文件来执行此操作的各种答案。没有任何工作和/或有意义。感谢您的帮助。

【问题讨论】:

    标签: alexa alexa-skill


    【解决方案1】:

    random 库是 PSL 的一部分。您只需在脚本顶部添加 import random 和其他导入语句。对于非 PSL 库,您应该将它们添加到“requirements.txt”中,然后将它们导入脚本中,就像使用 Node 和“package.json”文件一样。

    这是我在 Alexa 开发者控制台中的默认 Python Hello World 模板中编辑的 LaunchIntent 版本。 import random 在第 8 行附近的 import logging 之后添加到脚本中。

    class LaunchRequestHandler(AbstractRequestHandler):
        """Handler for Skill Launch."""
        def can_handle(self, handler_input):
            # type: (HandlerInput) -> bool
            return ask_utils.is_request_type("LaunchRequest")(handler_input)
    
        def handle(self, handler_input):
            # type: (HandlerInput) -> Response
            rnum =  str(random.randint(0,9))
            speak_output = "Welcome, your random number is " + rnum
    
            return (
                handler_input.response_builder
                    .speak(speak_output)
                    .ask(speak_output)
                    .response
            )
    

    因为我将数字与字符串组合以生成字符串,所以我必须将整数转换为字符串,但仅此而已。

    除此之外,Alexa 开发人员控制台的编辑器顶部还有一个“CloudWatch Logs”按钮。单击它并检查您的最新日志流,了解可能发生的错误的输出。

    例如,我不经常编写 Python,而且我已经习惯了 JavaScript 的类型强制,我忘记在将随机数添加到字符串之前将其转换为字符串。我知道……坏习惯。 CloudWatch 日志中明确指出了该错误。我修好了它,一切都像魅力一样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-22
      • 1970-01-01
      • 2019-01-14
      相关资源
      最近更新 更多