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 -
install flask with the async extra pip install flask[async]
as per the documentation
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With