首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RuntimeError:安装额外的“异步”版本,以便使用异步视图

RuntimeError:安装额外的“异步”版本,以便使用异步视图
EN

Stack Overflow用户
提问于 2021-12-12 04:50:29
回答 5查看 8.3K关注 0票数 8

当我试图在本地运行这个端口(本地)时,我会得到下面的错误。然而,我已经运行了"pip“flaskasync,并且似乎已经安装了所有的东西,但是我仍然得到了相同的错误!有谁知道出了什么问题吗?

代码语言:javascript
运行
复制
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))
代码语言:javascript
运行
复制
[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 -
EN

回答 5

Stack Overflow用户

发布于 2022-03-08 03:41:11

我用以下方法解决相同的错误:

代码语言:javascript
运行
复制
pip install aioflask

所以再用:

代码语言:javascript
运行
复制
run flask

希望这对其他人有帮助

票数 6
EN

Stack Overflow用户

发布于 2022-06-28 13:21:05

在我的例子中,这个问题是通过安装包"asgiref“来解决的。

代码语言:javascript
运行
复制
pip install asgiref

在安装烧瓶时,将不会安装异步视图的需求"asgiref“。默认情况下,它被考虑使用同步视图。所以你需要自己安装。您可以在Verison2.0.2中找到[PYTHON_PATH]/Lib/site-packageflask/app.py Line1618中的错误。此错误只会引发导入asgiref错误。

票数 5
EN

Stack Overflow用户

发布于 2022-01-28 10:09:51

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

请查看下面的简单示例-

代码语言:javascript
运行
复制
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)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70321014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档