[x 经] 现在已经是 Python 3 的时代了么? - 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
elviscai
V2EX    Python

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

  •  3
     
  •   elviscai 2016-09-19 09:01:19 +08:00 8015 次点击
    这是一个创建于 3308 天前的主题,其中的信息可能已经有所发展或是发生改变。
    零基础开始学 Python ,主要场景是快速构建 WebApp 。
    56 条回复    2016-09-21 13:05:20 +08:00
    qisuker
        1
    qisuker  
       2016-09-19 09:05:23 +08:00   2
    2016 绝对是分水岭, pip 包安装量里 py3 已经超过 py2

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

    另外, Py2 下声明字符串还是要加一个 u 的。个人习惯。
    prondtoo
        8
    prondtoo  
       2016-09-19 09:28:53 +08:00
    kingcos
        9
    kingcos  
       2016-09-19 09:32:04 +08:00
    怎么感觉最近 Python 的帖子怎么这么多= =

    问题都替我问完了。。。

    看来有必要看看 Python 3 的了,刚拿 2.7 爬了些图片= =
    Kabie
        10
    Kabie  
       2016-09-19 09:45:45 +08:00
    @prondtoo twisted 都支持 3 了?真是有生之年。。。
    beimenjun
        11
    beimenjun  
    PRO
       2016-09-19 09:54:21 +08:00
    最近出版的书籍已经开始 3 写,并且一般都明确不推荐 2 了。
    eloah
        12
    eloah  
       2016-09-19 09:58:17 +08:00
    @jimzhong twisted 早就支持 py3 了啊......而且 3.3 带的 asyncio 基本可以替代 twisted 了
    qiukun
        13
    qiukun  
       2016-09-19 10:01:47 +08:00
    cool 希望 ruby 能赶上(施主您还是 elixir 吧
    leavic
        14
    leavic  
       2016-09-19 10:39:33 +08:00
    公司服务器上的还是 2.4 ,偶尔写个脚本都想砸电脑,连 with statement 都没有啊。
    fds
        15
    fds  
       2016-09-19 10:43:35 +08:00
    @leavic 同情。可以考虑自己下个 3 偷偷用。
    aisk
        16
    aisk  
       2016-09-19 10:44:36 +08:00
    现在新开项目已经都是 Python3 的了
    leavic
        17
    leavic  
       2016-09-19 10:46:47 +08:00
    @fds 哈哈哈哈哈哈,做 IC 的,内部网络在物理上和外网隔绝。
    lcc4376
        18
    lcc4376  
       2016-09-19 10:55:38 +08:00
    py3 一定要的
    huybery
        19
    huybery  
       2016-09-19 11:16:58 +08:00
    为什么我一直觉得 2/3 没有多少区别呢?难道不是半个小时就能完美切换么
    felixzhu
        20
    felixzhu  
       2016-09-19 11:19:49 +08:00
    supervisor 也没有完美支持 3 吧
    sylecn
        21
    sylecn  
       2016-09-19 12:01:02 +08:00   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  
       2016-09-19 12:20:03 +08:00
    去年开始入 Python 的坑,上手学的就是 Py3 。看到这些讨论,我很欣慰~
    Geoion
        23
    Geoion  
       2016-09-19 12:23:59 +08:00
    最近 QQ 群里被很多新手问编码的问题,赶紧推荐了一波 py3 ,问问题的人明显少了很多
    CarlWangCn
        24
    CarlWangCn  
       2016-09-19 12:35:41 +08:00
    protobuf, 很难切换到 3
    Trim21
        25
    Trim21  
       2016-09-19 12:41:54 +08:00 via Android
    @Geoion 再安利一下 chcp 65001 ,又能少一大些
    sylecn
        26
    sylecn  
       2016-09-19 12:47:00 +08:00
    @CarlWangCn 官方新版已经支持了。官方没支持之前也有第三方发布的支持 python 3 的库。 bytes 和 str 分离对 protocol buffer 是更有利了,这个库本身支持 python 3 本来也不难。

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