tornado 貌似 4.5+考虑放弃维护 Python 2.x 了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
SlipStupig
V2EX    Python

tornado 貌似 4.5+考虑放弃维护 Python 2.x 了

  •  
  •   SlipStupig 2017-02-25 18:22:06 +08:00 7718 次点击
    这是一个创建于 3225 天前的主题,其中的信息可能已经有所发展或是发生改变。
    今天看了 google group 看作者考虑以后可能会不支持 2.x 了( https://groups.google.com/forum/#!msg/python-tornado/uqf0DjxILHc/VwRDS9tcDwAJ )现在 python3 应该学习了吗?
    第 1 条附言    2017-02-26 13:39:40 +08:00

    得到作者明确的回答了

    Tornado 4.5 and 5.0 will support both python 2 and python 3. I think we're still a few years away from dropping python 2.

    Ben还是会继续支持Python 2 消灭到2还需要一些时间

    47 条回复    2017-02-27 12:20:53 +08:00
    janxin
        1
    janxin  
       2017-02-25 18:26:47 +08:00 via iPhone
    挺好的,滋次,下一步上 asyncio 就行了
    SlipStupig
        2
    SlipStupig  
    OP
       2017-02-25 18:28:49 +08:00
    @janxin 后面异步不再是用 feature 来模拟了,而是原生的 asyncio
    Gem
        3
    Gem  
       2017-02-25 19:08:20 +08:00
    最近一直关注 Sanic https://github.com/channelcat/sanic 比 tornado 生态貌似好些
    pc10201
        4
    pc10201  
       2017-02-25 19:14:09 +08:00   1
    2.7 将在 2020 年终止维护了~
    SlipStupig
        5
    SlipStupig  
    OP
       2017-02-25 19:40:56 +08:00
    @Gem 好在哪里能不能介绍一下?
    Gem
        6
    Gem  
       2017-02-25 19:59:40 +08:00
    @SlipStupig 基于 python3.5
    Gem
        7
    Gem  
       2017-02-25 20:03:14 +08:00   1
    @Gem
    @SlipStupig 不小心就回车了,基于 python3.5 ,基于 uvloop 的实现,用法几乎就是 flask ,习惯 flask 的人,直接上手,看开发也很活跃,然后速度号称还是比较有优势的。
    SlipStupig
        8
    SlipStupig  
    OP
       2017-02-25 21:32:45 +08:00
    @Gem 体验了一下感觉速度很牛啊,比 tornado 快的多而且够轻量
    windfarer
        9
    windfarer  
       2017-02-25 22:08:24 +08:00
    @Gem sanic 那个 json 序列化的函数居然就叫 json ,和标准库的包名都冲突了,直接路人转黑
    only0jac
        10
    only0jac  
       2017-02-25 22:11:11 +08:00 via Android
    @Gem 看了下,不支持 win 系?
    SlipStupig
        11
    SlipStupig  
    OP
       2017-02-25 22:15:34 +08:00
    @windfarer 可以用 as 转移嘛
    freestyle
        12
    freestyle  
       2017-02-25 22:48:01 +08:00
    支持
    windfarer
        13
    windfarer  
       2017-02-25 22:48:21 +08:00
    @SlipStupig 强迫症表示不能忍
    pyufftj
        14
    pyufftj  
       2017-02-25 23:17:19 +08:00
    python 还好啦, 2 和 3 语法差别不是很大,学习成本不是很大。要是 Angular 和 Angular2 的话就要哭了
    lichun
        15
    lichun  
       2017-02-25 23:29:56 +08:00   1
    @windfarer 可以写 from sanic import response; requests.json, 不要直接 from sanic.request import json
    l1093178
        16
    l1093178  
       2017-02-25 23:38:35 +08:00
    @windfarer 不 import 到当前 namespace 就没事,直接 import as 也可以( flask 还有 flask.json 呢)
    windfarer
        17
    windfarer  
       2017-02-25 23:48:10 +08:00
    @lichun
    @l1093178
    我知道有许多方法可以解决掉这个问题,但 sanic 的这种命名方式显然是不够优雅的,这是创造了一个本来不会存在的问题
    Simple is better than complex.
    windfarer
        18
    windfarer  
       2017-02-25 23:48:44 +08:00
    话说跑题了喂,不应该讨论 tornado 的么= =
    gwind
        19
    gwind  
       2017-02-26 00:02:37 +08:00
    建议学习 Python3 , 支持已经很广泛。

    btw:

    1. tornado 框架我认为很有特点的一个方面:在于 RequestHandler 是 Class 类型,用到了 Python 的面向对象优势。

    2. 如果追求速率, golang 开发 http api 的应用情景越来越多
    phithon
        20
    phithon  
       2017-02-26 03:07:06 +08:00
    django 2 也要放弃支持 Python2 了
    bigzhu
        21
    bigzhu  
       2017-02-26 09:53:22 +08:00 via Android
    挺想换的,但是之前在 tornado 下写了很多很多可以复用的类…改起来工作量不小
    simple2025
        22
    simple2025  
       2017-02-26 11:41:33 +08:00
    到了 2020 年,我用不用 python 还不知道呢。。
    我觉得对于 python 异步而已,主要没有框架异步(tornado)+orm 异步(?)+template 异步(?)+redis 异步(?)一条龙,所以我现在宁愿用 flask 。。反正并发不是很高
    lecher
        23
    lecher  
       2017-02-26 12:39:35 +08:00 via Android
    ben 改决定了,他认为还需要几年才能放弃 Python2 , 4.5 乃至 5.0 都还会是兼容 Python2 、 Python3 。
    fy
        24
    fy  
       2017-02-26 12:54:06 +08:00
    其实如果抛弃 2 的支持是好事啊,现在除了老项目谁还用 2 ?

    隔壁的 aiohttp 搞的风生水起,很大一个原因就是没有包袱。
    jingniao
        25
    jingniao  
       2017-02-26 13:02:54 +08:00 via Android
    除去 rhel6 还在 2.6 ,其他发行版的默认 python 都还是 2.7 吧,即使是安装有 3.x
    期待第一个默认 3.x 的发行版出现,这样才算是吹响消灭 2.7 的号角
    SlipStupig
        26
    SlipStupig  
    OP
       2017-02-26 13:42:16 +08:00
    @chenqh tornado 相关的一部支持还是比较好,该有的都有, tornado 自带长连接
    SlipStupig
        27
    SlipStupig  
    OP
       2017-02-26 13:45:04 +08:00
    @gwind 个人还是喜欢 Tornado 风格,代码利用率高
    simple2025
        28
    simple2025  
       2017-02-26 16:36:39 +08:00
    @SlipStupig py2 你用什么 orm? wtform 有异步库吗? jinja2 有异步库吗
    SlipStupig
        29
    SlipStupig  
    OP
       2017-02-26 18:15:14 +08:00
    @chenqh ORM 我用 SQLAlchemy , 你说这两个库本质是表单渲染只要 handler 是异步就可以了,不知道字符串异步替换有什么好处
    simple2025
        30
    simple2025  
       2017-02-26 18:40:41 +08:00
    你 SQLAlchemy 怎么异步法?不会是用 tornado-celery 那种方式吧
    SlipStupig
        31
    SlipStupig  
    OP
       2017-02-26 18:46:05 +08:00
    @chenqh 可以指定 tornado-mysql 的驱动啊....
    hosiet
        32
    hosiet  
       2017-02-26 18:49:37 +08:00 via Android
    @jingniao Arch 多年前就切了, Arch 的这个行为当年直接导致了一个阐明默认 Python 版本选择方式的 PEP 出现
    SlipStupig
        33
    SlipStupig  
    OP
       2017-02-26 18:52:00 +08:00
    @chenqh 但是官方不推荐你异步操作
    simple2025
        34
    simple2025  
       2017-02-26 18:55:18 +08:00
    @SlipStupig 。。。。
    jingniao
        35
    jingniao  
       2017-02-26 19:23:33 +08:00 via Android
    @hosiet 还真有啊,这个发行版还真没用过
    killpanda
        36
    killpanda  
       2017-02-26 20:22:19 +08:00
    sanic 和 Flask 语法简直一模一样,迁移太方便了。不过貌似部署这块比较初级,还没有 graceful reload
    workwonder
        37
    workwonder  
       2017-02-26 20:32:28 +08:00 via Android
    @killpanda tornado 不是也没有 gracefully reload 吗?
    usenix
        38
    usenix  
       2017-02-26 22:06:09 +08:00
    Sanic 列出的 benchmark , Tornado 的 rps 也太惨了吧。。。
    果然 pure python 不太给力啊。。。
    SlipStupig
        39
    SlipStupig  
    OP
       2017-02-26 22:12:30 +08:00
    @usenix 等 4.5 版本切换到 asyncio 上就可能好多了
    Zzzzzzzzz
        40
    Zzzzzzzzz  
       2017-02-26 22:16:21 +08:00
    @usenix tornado 在 pypy 上跟开了挂一样
    messense
        41
    messense  
       2017-02-26 22:32:16 +08:00
    最近试用了 Sanic 感觉还是存在很多问题,得自己去填坑。
    killpanda
        42
    killpanda  
       2017-02-26 23:09:20 +08:00
    @messense 有什么问题能说一下么?最近打算把 sanic 用到生产商
    killpanda
        43
    killpanda  
       2017-02-26 23:11:05 +08:00
    @workwonder 我用 Flask 比较多,所以没有注意 tornado 这块,不过我看网上还是有些解决方案的
    messense
        44
    messense  
       2017-02-27 09:47:49 +08:00
    @killpanda 目前发现的两个问题:

    1. 它自己的 logging 用得不太对
    2. 请求出现异常的时候 request 对象可能是 None ,日志会非常难 debug
    aljun
        45
    aljun  
       2017-02-27 10:15:51 +08:00
    @killpanda 。。。我确定你需要去看看 sanic 源码
    kinghui
        46
    kinghui  
       2017-02-27 11:23:32 +08:00
    @Gem 粗略的看来一下 Sanic 的源码, 代码质量和 Tornado 相差甚远.
    workwonder
        47
    workwonder  
       2017-02-27 12:20:53 +08:00 via Android
    @killpanda 对啊,没有标准的方法。有 hack 的方法,不完美。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4363 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 05:35 PVG 13:35 LAX 21:35 JFK 00:35
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86