我正在用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
这都是通过amazon开发控制台https://developer.amazon.com/alexa/console/ask实现的
编辑: 我很抱歉没有要求你提供你问题的全部细节
根据我的过期时间,您的问题与未正确配置依赖项有关。部署函数时,所有依赖项必须在^{中列出。为了获得正确的依赖关系,我建议使用
pipenv
例如,以下命令将显示项目的完整依赖关系树:
pipenv install requests
pipenv install bs4
pipenv lock -r > requirements.txt
这些命令的结果显示添加这两个库后
requirements.txt
文件具有以下依赖关系:所有这些都是项目正确导入模块所必需的。当然,您还需要在
requirements.txt
中使用bot3和ask sdk,但是,它们本机包含在lambda中,因此您不需要依赖项对于本机未包含在lambda中的任何库,您需要遵循以下步骤。有关本机包含的库的列表,请参见:Lambda Packages
相关问题 更多 >
编程相关推荐