'RuntimeError: Install Flask with the 'async' extra in order to use async views

When i try run this locally with docker run (locally) i am getting the error below.. However, i have already run "pip install "flask[async]" and everything seems to be installed.... but same error! Anybody idea whats wrong? Thanks!

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 -


Solution 1:[1]

First thing you need to use @app.route instead of @app.routes. You also need to install aioflask along with flask to overcome this RuntimeError

Check below simple example -

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)

Solution 2:[2]

i resolve same error with :

pip install aioflask

so run again the flask with:

run flask

hope this help the other

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Suyog Shimpi
Solution 2 lazuardi fenzan