tornado v6 似乎已经放弃了 tornado.web.asynchronous 协程。在代码中解决这个问题有啥不同的方法吗?
Posted
技术标签:
【中文标题】tornado v6 似乎已经放弃了 tornado.web.asynchronous 协程。在代码中解决这个问题有啥不同的方法吗?【英文标题】:tornado v6 seems to have dropped tornado.web.asynchronous coroutine. any different way of fixing this in code?tornado v6 似乎已经放弃了 tornado.web.asynchronous 协程。在代码中解决这个问题有什么不同的方法吗? 【发布时间】:2019-04-02 13:21:38 【问题描述】:将 torando v5.1 迁移到 v6。但异步协程似乎已被移除。对其修复有何建议?
将项目从 2.7 迁移到 3.6,同时将 tornado 框架从 v5.1 迁移到 v6.0.2,这是由于 [Python code for DynamoDB query is working on v3.6 but not working in python 2.7 strackoverflow 线程中建议的错误。
安装 v6 龙卷风后,它因以下错误而中断。
Python3 xxxx.py
Traceback (most recent call last):
File "XXXX.py", line 200, in <module>
class MainHandler(tornado.web.RequestHandler):
File "XXXX.py", line 201, in MainHandler
@tornado.web.asynchronous
AttributeError: module 'tornado.web' has no attribute 'asynchronous'
遇到同样问题的https://github.com/mher/flower/issues/878 线程。有解决办法吗?或任何其他在代码中呈现事物的方式?
【问题讨论】:
这首先不是问题。您必须使用版本 5 或更新您的代码以使用版本 6。 【参考方案1】:@asynchronous
处理程序在 5.1 中已弃用,并在 6.0 中删除。您应该使用协程(使用@tornado.gen.coroutine
或async def
),而不是使用@asynchronous
和回调。
请注意,一些较旧的代码示例曾经在同一方法上同时使用 @asynchronous
和 @coroutine
。将@asynchronous
放在协程上不会做任何事情,因此如果您碰巧同时使用这两个装饰器,您可以删除@asynchronous
而无需更改任何其他内容。
【讨论】:
以上是关于tornado v6 似乎已经放弃了 tornado.web.asynchronous 协程。在代码中解决这个问题有啥不同的方法吗?的主要内容,如果未能解决你的问题,请参考以下文章