【问题标题】:NameError: name 'ask' is not definedNameError:名称“询问”未定义
【发布时间】:2019-05-06 17:18:05
【问题描述】:

烧瓶问题

@ask.launch 问题

在运行我的 python 烧瓶脚本时遇到问题。我正在使用 python 2.7,错误说: 文件“C:\Users\user1\AppData\Local\Continuum\anaconda2\Lib\site-packages\hello_lumion.py”,第 13 行,@ask.launch NameError: name 'ask' is not defined

import logging
import os 


from flask import request
from flask import Flask

from flask_ask import Ask, statement, request, context, session, question,  version

import requests


@ask.launch
def welcome():
    return statement ('Welcome to Foo')


app = Flask(__name__)

ask= Ask(app,"/")

logging.getLogger("flask_ask").setLevel(logging.DEBUG)

@ask.intent("Hello")

def hello():
    msg= "hello from lumion"
    return statement (msg)


if __name__ == '__main__':
    port = 9000
    app.run(host='0.0.0.0', port=port)
    app.run(debug=True) 

关于如何克服这个问题的任何建议?

【问题讨论】:

  • 你确定你的意思不是Ask 而不是ask?这是代码中任何地方实际定义的唯一相似名称。
  • 字面意思是 NameError: name 'ask' is not defined 你知道如何克服这个特殊问题吗?我到处搜索找不到遇到与我类似的问题的人。根据烧瓶文档是的,它需要以这种方式编写,所以它是“询问”而不是询问。

标签: python flask alexa alexa-skills-kit


【解决方案1】:

您在定义之前调用ask。在您的代码中,您有

@ask.launch # ask has not been made
def welcome():
    return statement ('Welcome to Foo')


app = Flask(__name__)

ask= Ask(app,"/") # ask gets made here!

您需要对其重新排序,因此当您调用ask 时,它已被定义。比如:

app = Flask(__name__)

ask= Ask(app,"/") # define it first

@ask.launch # now use it
def welcome():
    return statement ('Welcome to Foo')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-24
    • 1970-01-01
    • 2021-04-15
    • 2019-01-26
    • 2021-10-05
    • 2017-08-16
    相关资源
    最近更新 更多