Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

python

flask

When I try to 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 I still get the same error! Does anybody have an idea on what's wrong?

import asyncio
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 -
like image 272
MichaelCo1 Avatar asked Sep 05 '25 16:09

MichaelCo1


2 Answers

install flask with the async extra pip install flask[async] as per the documentation

like image 84
ochi Avatar answered Sep 08 '25 18:09

ochi


In my case, this problem is fixed by install package "asgiref".

pip install asgiref

Requirement "asgiref" for async views will not be installed while installing flask. It's considered using sync views by default. So you need to install it yourself. You can find the error in [PYTHON_PATH]/Lib/site-packageflask/app.py Line1618 in verison 2.0.2. This error will raise only import asgiref error.

like image 43
se7enXF Avatar answered Sep 08 '25 16:09

se7enXF