【问题标题】:RuntimeError: Install Flask with the 'async' extra in order to use async viewsRuntimeError: 安装带有“异步”附加功能的 Flask 以使用异步视图
【发布时间】:2022-06-25 22:40:34
【问题描述】:

当我尝试使用 docker run(本地)在本地运行时,我收到以下错误。但是,我已经运行了“pip install”flask[async]”,并且所有内容似乎都已安装......但相同错误!有人知道出了什么问题吗?谢谢!

from flask import Flask
from flask import request
from flask import Response
import json
import commacount



app = Flask(__name__)

@app.routes('/')
async def home():
    x = str(request.args.get('x'))
    answer = str(commacount.commaCount(x))
    await asyncio.sleep(2)

    
    
    r = {
        "x": x,
        "answer": answer
    }

    reply = json.dumps(r)

    response = Response(response = reply, status=200, mimetype="application/json")
    
    response.headers['Content-Type']='application/json'
    response.headers['Access-Control-Allow-Orgin']='*'

    return response

if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    loop.run_until_complete(app.run(host='0.0.0.0', port=5000))
[2021-12-12 04:42:36,711] ERROR in app: Exception on / [GET]
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 2073, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1518, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1516, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1502, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
  File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1599, in ensure_sync
    return self.async_to_sync(func)
  File "/usr/local/lib/python3.6/dist-packages/flask/app.py", line 1622, in async_to_sync
    ) from None
RuntimeError: Install Flask with the 'async' extra in order to use async views.
172.17.0.1 - - [12/Dec/2021 04:42:36] "GET /?x=,.., HTTP/1.1" 500 -

【问题讨论】:

  • 你好!你找到解决办法了吗?

标签: python flask


【解决方案1】:

我解决了同样的错误:

pip install aioflask

所以再次运行烧瓶:

run flask

希望对他人有所帮助

【讨论】:

  • 谢谢!针对同样的错误,我的头撞了超过 24 小时 :)
【解决方案2】:

首先你需要使用@app.route 而不是@app.routes。您还需要安装aioflaskflask 来克服这个RuntimeError

查看下面的简单示例 -

from flask import Flask

app = Flask(__name__)
app.env = "development"


@app.route('/')
async def home():
    return {"text": "Hello!"}


if __name__ == '__main__':
    app.run(debug=True)

【讨论】:

    【解决方案3】:
    pip install aioflask
    

    而不是

    from flask import Flask
    from flask import request
    from flask import Response
    

    from aioflask import Flask, request, Response

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-01
      • 2017-02-25
      • 2019-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-05
      • 1970-01-01
      相关资源
      最近更新 更多