[x 经] 现在已经是 Python 3 的时代了么? - V2EX
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
elviscai

[x 经] 现在已经是 Python 3 的时代了么?

  •  3
     
  •   elviscai Sep 19, 2016 8488 views
    This topic created in 3530 days ago, the information mentioned may be changed or developed.
    零基础开始学 Python ,主要场景是快速构建 WebApp 。
    56 replies    2016-09-21 13:05:20 +08:00
    qisuker
        1
    qisuker  
       Sep 19, 2016   2
    2016 绝对是分水岭, pip 包安装量里 py3 已经超过 py2

    最流行的包里,几乎已经全部支持 py3 了: http://py3readiness.org/
    jimzhong
        2
    jimzhong  
       Sep 19, 2016
    Django, Flask, Tornado 都已经支持 Python3 了。
    目前一定要用 Py2 的只剩 twisited 了把。
    petelin
        3
    petelin  
       Sep 19, 2016 via Android
    我说个体验,去年写的代码,那时候装包好多只能在 py2,无奈。今天要加一个新功能,将一个字典 url 编码,要指定为 gbk 格式的。 py2 上 urllib 和 requests 相关方法都缺少 encoding 参数,明显 py3 是升级版嘛, 2 不死才怪。
    raptium
        4
    raptium  
       Sep 19, 2016 via Android
    @petelin py2 的 str 已经是编码过的了,没必要再指定 encoding 了
    newbieo0O
        5
    newbieo0O  
       Sep 19, 2016
    那些不升级的对第三方包依赖比较严重,还有一个就是懒。
    syahd
        6
    syahd  
       Sep 19, 2016 via Android
    @petelin 萌新表示 py 2.7 的编码没问题啊, encode 和 decode 就已经很好用了啊
    petelin
        7
    petelin  
       Sep 19, 2016 via Android
    额,我倒没想到这个,这样的话我必须为每一个字符串都指定编码,可不可行我不知道,编码完了都是二进制,他如何知道我原来编码是什么,我目标编码是什么?就算可行,这个地方加一个 encoding 依然有必要啊,我并不想每一个字符串都指定格式,他只需要搞成我需要的格式就行了,而且 str 和 unicode 都应该能作为参数。

    另外, Py2 下声明字符串还是要加一个 u 的。个人习惯。
    prondtoo
        8
    prondtoo  
       Sep 19, 2016
    kingcos
        9
    kingcos  
       Sep 19, 2016
    怎么感觉最近 Python 的帖子怎么这么多= =

    问题都替我问完了。。。

    看来有必要看看 Python 3 的了,刚拿 2.7 爬了些图片= =
    Kabie
        10
    Kabie  
       Sep 19, 2016
    @prondtoo twisted 都支持 3 了?真是有生之年。。。
    beimenjun
        11
    beimenjun  
    PRO
       Sep 19, 2016
    最近出版的书籍已经开始 3 写,并且一般都明确不推荐 2 了。
    eloah
        12
    eloah  
       Sep 19, 2016
    @jimzhong twisted 早就支持 py3 了啊......而且 3.3 带的 asyncio 基本可以替代 twisted 了
    qiukun
        13
    qiukun  
       Sep 19, 2016
    cool 希望 ruby 能赶上(施主您还是 elixir 吧
    leavic
        14
    leavic  
       Sep 19, 2016
    公司服务器上的还是 2.4 ,偶尔写个脚本都想砸电脑,连 with statement 都没有啊。
    fds
        15
    fds  
       Sep 19, 2016
    @leavic 同情。可以考虑自己下个 3 偷偷用。
    aisk
        16
    aisk  
       Sep 19, 2016
    现在新开项目已经都是 Python3 的了
    leavic
        17
    leavic  
       Sep 19, 2016
    @fds 哈哈哈哈哈哈,做 IC 的,内部网络在物理上和外网隔绝。
    lcc4376
        18
    lcc4376  
       Sep 19, 2016
    py3 一定要的
    huybery
        19
    huybery  
       Sep 19, 2016
    为什么我一直觉得 2/3 没有多少区别呢?难道不是半个小时就能完美切换么
    felixzhu
        20
    felixzhu  
       Sep 19, 2016
    supervisor 也没有完美支持 3 吧
    sylecn
        21
    sylecn  
       Sep 19, 2016   1
    今年开始,默认新项目都切换到 python 3 了。

    各种平台、软件和库对 python 3 的支持会越来越好。最流行的库会保持同时支持 2 和 3 ,但是小一点的库以后也许就只有 python 3 的支持了。

    python 3 每个新的小版本都在加速这个转化过程。因为这个语言的一切新活力都在 python 3 里面了。 python 2 已经是明日黄花。现在各种 backport 的努力只是因为历史原因。但是总有东西是没有办法 backport 到 2 的,比如 await/async syntax 。

    另外,对于大项目, 2 转化到 3 不是小时级别能完成的事,起码要按天来算。转化坑还是挺多的。对于单元测试不完整,或者没有单元测试的项目,强烈建议就不要转了,转好了估计跑的时候会有很多问题。
    scipio
        22
    scipio  
       Sep 19, 2016
    去年开始入 Python 的坑,上手学的就是 Py3 。看到这些讨论,我很欣慰~
    Geoion
        23
    Geoion  
       Sep 19, 2016
    最近 QQ 群里被很多新手问编码的问题,赶紧推荐了一波 py3 ,问问题的人明显少了很多
    CarlWangCn
        24
    CarlWangCn  
       Sep 19, 2016
    protobuf, 很难切换到 3
    Trim21
        25
    Trim21  
       Sep 19, 2016 via Android
    @Geoion 再安利一下 chcp 65001 ,又能少一大些
    sylecn
        26
    sylecn  
       Sep 19, 2016
    @CarlWangCn 官方新版已经支持了。官方没支持之前也有第三方发布的支持 python 3 的库。 bytes 和 str 分离对 protocol buffer 是更有利了,这个库本身支持 python 3 本来也不难。

    https://github.com/google/protobuf/issues/7
    https://pypi.python.org/pypi/protobuf/3.0.0b2
    /tr>
    kaneg
        27
    kaneg  
       Sep 19, 2016
    今年好不容易把产品中的 Jython2.5 升级到 Jython2.7. 如果都跑到 3 上去,让压根就没有 3.0 的 Jython 情何以堪。
    markx
        28
    markx  
       Sep 19, 2016
    希望各社区要吸取经验,升级不能太激进啊,不然迁移成本太高用户不买帐。
    mikicomo
        29
    mikicomo  
       Sep 19, 2016
    @markx python 社区估计也就这么一次大动作,以后也不会这么来了吧, 4 开始都会做好对 3 的向后兼容,可能是以前社区的 dalao 觉得 2.x 问题太多,设计不优美,干脆切了重来,结果各位 dalao 也是蛋疼了这么多年 23333
    ry_wang
        30
    ry_wang  
       Sep 19, 2016
    supervisor 这么多年了是到死也不打算支持了么
    ansible 这浓眉大眼的竟然也不支持。。。。。
    workwonder
        31
    workwonder  
       Sep 19, 2016 via Android
    @ry_wang supervisor 不是可以用 systemd 替代码,后者已经成为多数 Linux 发行版的新选择。
    YvesX
        32
    YvesX  
       Sep 19, 2016
    撑过来就是好事。
    guyskk
        33
    guyskk  
       Sep 19, 2016 via Android
    新造的轮子不少是只支持 py3 的,写同时兼容 2 和 3 的代码太蛋疼了, Python 3 is the future 。
    ad0be
        34
    ad0be  
       Sep 19, 2016
    从廖雪峰的 Py3.5 开始看着学的~感觉 Py3 是趋势
    neoblackcap
        35
    neoblackcap  
       Sep 20, 2016
    感觉 3.5 好的 aync/await 实在是优势很明显的特性,很多人都用了,而且加上标准库里面的 asyncio 模块,自己写一个高性能异步框架也是分分钟的事情。实在没有理由留恋 2.7
    SlipStupig
        36
    SlipStupig  
       Sep 20, 2016
    宁愿选择 Golang 也不转 Py3 , py3 根本就没什么优势啊
    ooh
        37
    ooh  
       Sep 20, 2016 via Android
    想当年我敲 hello world ,报错一个星期,还是去老表家玩,老表告诉我是怎么回事 当年我就敲了个 print('hello world') 而已,现在老表做编译器方面,我做 PHP 方面,那也是我们唯一一次谈论编程...
    simple2025
        38
    simple2025  
       Sep 20, 2016   1
    为什么我觉得 3 是个史前巨坑。。 async/await 配套的库不知道要能弄多久呢。。
    在说了。。 async/await 只能提高 web 效率而已,像我这种只会用框架的人来说, async/await 有什么用?
    fhefh
        39
    fhefh  
       Sep 20, 2016
    先 mark~~~
    dsg001
        40
    dsg001  
       Sep 20, 2016
    gevent , scrapy 都支持 py3 了,而且现在的 3.5 直接 32 、 64 整合,自动选择
    clockwerk
        41
    clockwerk  
       Sep 20, 2016
    nice 这下终于不用看着 2 代码 翻译成 3 了
    evanmeng
        42
    evanmeng  
       Sep 20, 2016
    看领域,比如如果你想用 py 做运维,那么三个最常用的 py 运维库 Ansible Salt 和 Fabric 都不支持 3 ,而且看上去永远不会支持的样子。
    tjxiter
        43
    tjxiter  
       Sep 20, 2016
    2 换到 3 的使用,不是 so easy ?
    66beta
        44
    66beta  
       Sep 20, 2016
    哇,厉害,搞得我都想重新开始学了...重新。。。
    tairan2006
        45
    tairan2006  
       Sep 20, 2016
    今年可以用 3 了
    jason19659
        46
    jason19659  
       Sep 20, 2016
    一直以为早就是 3 的时代了
    whnzy
        47
    whnzy  
       Sep 20, 2016
    @jason19659 公司还是用 2
    sunwei0325
        48
    sunwei0325  
       Sep 20, 2016
    fabric 还是 python2
    wujunze
        49
    wujunze  
       Sep 20, 2016
    新手 python 学的 py3.5
    v2dxt
        50
    v2dxt  
       Sep 20, 2016
    @SlipStupig 看到那些 GoPATH 就还是继续学 Python3 ,除非 GoPATH 能更方便设置
    SlipStupig
        51
    SlipStupig  
       Sep 20, 2016
    @v2dxt 这些都是个人习惯问题, java 还要配置 jdk_home , python 要强制空格.....习惯就好
    littleshy
        52
    littleshy  
       Sep 20, 2016
    以为 3 不用再担心编码问题了,没想到 str 和 bytes 也是让我转得发疯……
    syslot
        53
    syslot  
       Sep 20, 2016
    python3 有哪些比较好的书?
    connection
        54
    connection  
       Sep 20, 2016
    2015 暑假那时候我看 github 上的大部分代码还是 2
    2016 暑假这时候我看 github 上的大部分代码就是 3 了
    0x4b0082
        55
    0x4b0082  
       Sep 21, 2016
    @ry_wang 已经放弃 supervisor 了, systemd 好用还稳定。 supervisor 之前遇上过找不到 pid 文件的诡异事情。现在,包括 nodejs 的项目我也不信任 forever 这种东西了,直接用系统层级的东西更加可靠
    josephok
        56
    josephok  
       Sep 21, 2016
    About     Help     Advertise     Blog     API     FAQ     Solana     1084 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 133ms UTC 22:49 PVG 06:49 LAX 15:49 JFK 18:49
    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