我正在努力在python的一个简单的亚马逊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

这一切都不是通过亚马逊开发控制台https://developer.amazon.com/alexa/console/ask实现的
发布于 2020-01-22 01:02:51
编辑:我为没有请求您的问题的全部详细信息而道歉
根据我的解释,您的问题与依赖项配置不正确有关。在部署函数时,必须在requriements.txt中列出所有依赖项。为了获得正确的依赖关系,我建议使用pipenv。
例如,以下命令将显示项目的完整依赖关系树:
pipenv install requestspipenv install bs4pipenv 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中包含boto3和ask-sdk,但是,它们本身就包含在lambda中,因此您不需要这些依赖项。
对于任何不是本机包含在lambda中的库,您将需要遵循此过程。有关本机包含的库的列表,请参阅:Lambda Packages。
https://stackoverflow.com/questions/59742425
复制相似问题