推荐学习书目
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 · Feb 25, 2017 · 7946 views
    This topic created in 3374 days ago, the information mentioned may be changed or developed.
    今天看了 google group 看作者考虑以后可能会不支持 2.x 了( https://groups.google.com/forum/#!msg/python-tornado/uqf0DjxILHc/VwRDS9tcDwAJ )现在 python3 应该学习了吗?
    Supplement 1  ·  Feb 26, 2017

    得到作者明确的回答了

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

    btw:

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

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

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

    1. 它自己的 logging 用得不太对
    2. 请求出现异常的时候 request 对象可能是 None ,日志会非常难 debug
    aljun
        45
    aljun  
       Feb 27, 2017
    @killpanda 。。。我确定你需要去看看 sanic 源码
    kinghui
        46
    kinghui  
       Feb 27, 2017
    @Gem 粗略的看来一下 Sanic 的源码, 代码质量和 Tornado 相差甚远.
    workwonder
        47
    workwonder  
       Feb 27, 2017 via Android
    @killpanda 对啊,没有标准的方法。有 hack 的方法,不完美。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2824 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 466ea39e · 68ms · UTC 06:02 · PVG 14:02 · LAX 23:02 · JFK 02:02
    ♥ Do have faith in what you're doing.