推荐学习书目
› 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
ddgreat
V2EX  ›  Python

Python2.7 还是 3.5。纠结

  •  
  •   ddgreat · Nov 17, 2015 via iPhone · 27887 views
    This topic created in 4005 days ago, the information mentioned may be changed or developed.
    问题概述:一共两个项目,目前大三,都是自己的创新项目,非商业应用。第一个项目是一个基于地图 API 的 WebApp 。后端希望使用 Python 实现,框架用 flask 。第二个项目打算做微信公众号,需要涉及到爬虫。
    团队情况:较熟悉 C++ JavaScript
    Python 还没开始学。之前看过一点 Python2.7 语法。
    68 replies  •  2016-04-04 11:25:53 +08:00
    echo1937
    echo1937
    Nov 17, 2015
    1
    建议 3.43 ,除非你的项目有非用不可的 3.5 特性。
    rogwan
    rogwan
    Nov 17, 2015
    2
    一次性交付的项目,基本不考虑后期迭代升级,而自身有有丰富的 2.7 经验,自然选择 Python2.7 。
    通常而言,项目都是需要不断更新的, Python3+推出其实已经快 8 年了,重要、常用库基本都更新支持了,建议选 Python3.5 。
    elvea
    elvea
    Nov 17, 2015
    3
    如果没有历史的包袱,外围的库也支持,直接上最新 3.5 。
    WildCat
    WildCat
    Nov 17, 2015
    4
    Scrapy 不支持 Python 3 真是一件蛋疼的事情
    yangzh
    yangzh
    Nov 17, 2015 via iPhone
    5
    3.5
    tanteng
    tanteng
    Nov 17, 2015
    6
    直接 3 ,新手入门: https://github.com/tanteng/learn-python
    kongkongyzt
    kongkongyzt
    Nov 17, 2015
    7
    选 3.5
    Feiox
    Feiox
    Nov 17, 2015
    8
    我们已经在 3 个项目中使用了 3.4 其中 2 个已经逐步迁移到 3.5 了,
    从 2.7 迁移到 3.5 什么感觉呢?嗯,美丽新世界!
    Banio
    Banio
    Nov 17, 2015
    10
    我 1 个月前也跟 LZ 有一样的顾虑 我都工作 2 年了 面对的是直接工作问题 我果断就选择 2 了 LZ 这种的 我觉得直接 3 就行了
    GPU
    GPU
    Nov 17, 2015
    11
    我感觉 debian 安装 py3.5 还是有点麻烦啊。 源里面的还是 3.2 。目前只知道编译安装

    还有其他快捷的方法吗?
    crazyxin1988
    crazyxin1988
    Nov 17, 2015
    12
    好不好 一定看要需求 看情况
    上生产 不是闹着玩 不是玩新特性
    既然 LZ 说要用 flask , 楼主可以参考 flask 对 python3 的支持情况,以及一些注意点
    http://flask.pocoo.org/docs/0.10/python3/
    chengzhoukun
    chengzhoukun
    Nov 17, 2015
    13
    学生当然 Python 3 ,有没有历史包袱
    zhouquanbest
    zhouquanbest
    Nov 17, 2015
    14
    Tornado 已经支持 3 的 async 等关键字
    推荐尝试下 爽的不要不要的
    a398058068
    a398058068
    Nov 17, 2015
    15
    P3
    leeuserb
    leeuserb
    Nov 17, 2015
    16
    区别没那么大
    PythonAnswer
    PythonAnswer
    Nov 17, 2015
    17
    333333333333333333333333333
    life
    life
    Nov 17, 2015
    18
    Python 2.5 的可怎么办啊。。。
    ericls
    ericls
    Nov 17, 2015
    19
    目前本人新项目都是 3.5
    Feiox
    Feiox
    Nov 17, 2015
    20
    @GPU 使用 pyenv 或者 docker ,真心好用
    GPU
    GPU
    Nov 17, 2015
    21
    @Feiox docker 去哪裏找?
    kingxsp
    kingxsp
    Nov 17, 2015
    22
    建议选 Python3.5
    9hills
    9hills
    Nov 17, 2015
    23
    2.7
    clino
    clino
    Nov 17, 2015
    24
    话说如果 3 升级的时候慢慢一个变化一个变化地升而不是断崖式的
    现在大家也不用这么纠结了
    QQ1685425675
    QQ1685425675
    Nov 17, 2015
    25
    建议 3 以上,我目前用的 3.43 ,打算生 3.5 ,
    matthewz
    matthewz
    Nov 17, 2015
    26
    @GPU pyenv install ?
    initialdp
    initialdp
    Nov 17, 2015❤️1
    27
    通常这种情况我都建议跟着系统走。如果系统,比如 Debian7 ,默认是 2 ,就用 2 。默认是 3 ,就用 3 。

    要不然就是根据客户的要求来。

    总之,能不折腾就不折腾,把时间和精力放在更有意义的事情上。
    MinskyNg
    MinskyNg
    Nov 17, 2015
    28
    差别又没多大,两个都用用不就好了
    jhaohai
    jhaohai
    Nov 17, 2015 via iPhone
    29
    既然不是商业的项目,那就上 python3 好了
    GPU
    GPU
    Nov 17, 2015
    30
    先打一场,打的时候 xxxx
    dreampuf
    dreampuf
    Nov 17, 2015
    31
    > We strongly recommend using Python 2.6 and 2.7 with activated Python 3 warnings during development. If you plan on upgrading to Python 3 in the near future we strongly recommend that you read How to write forwards compatible Python code.

    http://flask.pocoo.org/docs/0.10/advanced_foreword/#the-status-of-python-3
    EarlGrey
    EarlGrey
    Nov 17, 2015
    32
    楼主如果还没怎么开始学 Python 的话,可以先看看这篇:《 Python 生态系统入门》 http://codingpy.com/article/python-ecosystem-introduction
    Wangxf
    Wangxf
    Nov 17, 2015
    33
    选 PHP 就不会纠结了,最好的语言
    zhexue69
    zhexue69
    Nov 17, 2015
    34
    上个月刚把生产环境几台 Python2.4 的服务器升级到 Python2.7
    以前的部署脚本都是针对 CentOS4 的,现在改 CentOS7 ,为了 systemctl 大改了下。
    Allianzcortex
    Allianzcortex
    Nov 17, 2015
    35
    同是 Python+flask 。去年学的时候也是大三上,是从 Python 2,7.9 开始的。我建议是从 Python3 开始,毕竟 Python3 未来是主流,支持 Python3 的库肯定是越来越多, Python3 本身的特性要比 Python2 好很多。如果是做爬虫收集,关键就在于你的框架的选择,如果要用 Scrapy 的话,可以试着用 virtualenv Python2 ,抓取到 Mysql 里,之后用 Python3 来写 flask 读取数据。

    ---

    目前已经正式不打算考研了,正在修改简历,拾缀一下自己的项目。等到能看的过去的时候开源出来,和 LZ 再交流吧。
    icedx
    icedx
    Nov 17, 2015
    36
    都学 无他
    usapla
    usapla
    Nov 17, 2015
    37
    好捉急啊,我不知道该跑还是该走,虽然现在我连爬都不会。
    Feiox
    Feiox
    Nov 17, 2015
    38
    @GPU docker pull python3.5
    xierch
    xierch
    Nov 17, 2015
    39
    3.5 吧
    即使要写 2.7 ,也尽量按照兼容 3 的写法来写
    msg7086
    msg7086
    Nov 17, 2015 via Android
    40
    @GPU 然而 debian 有很多分支,而且是可以跨版本安装单个软件包的。
    GPU
    GPU
    Nov 17, 2015
    41
    @Feiox 就這麼簡單?
    wawehi
    wawehi
    Nov 17, 2015
    42
    没历史包袱肯定选新的
    TimePPT
    TimePPT
    Nov 17, 2015
    43
    刚切了 3.5 ,就 str 原 生 Unicode 我就用的很开心了
    Feiox
    Feiox
    Nov 17, 2015
    44
    @GPU 自从用了 docker 世界都清爽了很多。其实 pyenv 也很简单,
    pyenv install 3.5.0 && pyenv virtualenv 3.5.0 pkgenv && pyenv local pkgenv
    完成了之后,每次你进入这个目录就会自动切换到你建立的这个名叫 pkgenv 的虚拟环境,切换到其他目录就自动退出
    sox
    sox
    Nov 17, 2015
    45
    熟悉 C++ JavaScript 就用 Node 呗,这样 C++ JavaScript 都用得上了
    GPU
    GPU
    Nov 17, 2015
    46
    @Feiox pyenv 还没有用过。今晚了解一下。
    lincanbin
    lincanbin
    Nov 17, 2015
    47
    python 3 和 python 2 虽然是两门完全不同的语言,但是如果你会 py3 ,那么当你需要 py2 的时候,学起来自然也不会太慢。
    总之不要纠结太多,随便选一个学了再说。
    yahoo21cn
    yahoo21cn
    Nov 17, 2015
    48
    用来谋生的话,用 2 ,没什么可说的
    TrustyWolf
    TrustyWolf
    Nov 17, 2015
    49
    Fedora 23 Server 默认版本 Python 3.4.3 0.0
    jarlyyn
    jarlyyn
    Nov 17, 2015
    50
    做 web,代码重要么?

    代码不重要,数据才重要。

    代码只要能快速做出来,满足需求,没有 bug 就好。

    所以

    1.找你能参考的代码对应的版本。

    2.既然熟悉 c++和 js,为什么一定要从头学 Python?
    wencan
    wencan
    Nov 17, 2015
    51
    python 2.7
    目前主流 linux 发行版都支持这个

    很少有支持 python 3.x 的
    flyingfz
    flyingfz
    Nov 17, 2015
    52
    npm 安装一些模块的时候,如果装的是 python 3.5 ,会报错,( node 4.0 带的 npm )。
    是我的配置不对?
    meloncrashed
    meloncrashed
    Nov 17, 2015
    53
    2 的中文让人欲仙欲死
    gejigeji
    gejigeji
    Nov 17, 2015
    54
    还在用 2.6.6 懒得安装了
    fy
    fy
    Nov 17, 2015
    55
    直接 3 啊!!!我去年就迁移了,很爽
    restran
    restran
    Nov 17, 2015
    56
    计划迁移到 3 , 2 是到 2020 年停止支持了吗?如果是的话,时间很近了。
    RickyBoy
    RickyBoy
    Nov 17, 2015
    57
    Python 3 无误
    jsjscool
    jsjscool
    Nov 18, 2015
    58
    Python 3 不解释。 2 处理中文字符让新手蛋碎
    matthewz
    matthewz
    Nov 18, 2015
    59
    @wencan 预装和支持是一个概念?
    elvis_w
    elvis_w
    Nov 18, 2015
    60
    如果主要是开发 flask ,慎用 Python 3
    http://docs.jinkan.org/docs/flask/python3.html
    tcpdumpp
    tcpdumpp
    Nov 18, 2015
    61
    2.7
    janxin
    janxin
    Nov 18, 2015
    62
    关于 Flask 的使用, Python3 的支持是没有问题的,目前测试用例运行都很正常:
    https://travis-ci.org/mitsuhiko/flask

    @elvis_w @dreampuf 提供的 Flask 文档其实是 2013 年更新的,最新的可以在 https://github.com/mitsuhiko/flask/blob/master/docs/python3.rst 查看,不过官网没更新,这个问题也有人提 issue 了。

    其实我们线上系统仍旧是使用 2.7.10 版本 CPython ,主要原因是在某些性能紧要一点的场景可以切换至 Pypy 。目前 pypy3 应该是不支持 flask 的。
    ghostsf
    ghostsf
    Nov 18, 2015
    63
    Python 3 吧
    ddgreat
    ddgreat
    OP
    Nov 19, 2015 via iPhone
    64
    我们最后选择了 Python3 。:)感谢大家的回复。
    elvis_w
    elvis_w
    Nov 19, 2015
    65
    @janxin 官网文档没问题,因为你给的链接是 master 分支的,而在生产环境中使用的 0.10.1 版本的文档内容和官网一致: https://github.com/mitsuhiko/flask/blob/0.10.1/docs/python3.rst

    事实上, Flask 本身从一开始就能够很好地支持 Python 3 。不推荐用 3 的原因主要还是部分插件不支持,虽然这些插件数量很少,但是很重要
    wencan
    wencan
    Nov 23, 2015
    66
    @matthewz
    我的表述不太恰当
    但你想,如果系统预装 python2.7 ,那么系统其它预装的依赖 python 的包也一定是依赖 python2.7
    onexz
    onexz
    Dec 7, 2015
    67
    搭车问一下, 3.5 和 3.4x 有没有兼容性问题?
    vdo
    vdo
    Apr 4, 2016
    68
    2015 年的 Pycon 上 Guido 依旧是一脸小媳妇样,苦口婆心敦促各位开发者尽快切换到 Py3 ,帮助已经停止维护的模块做兼容,演讲中数次无奈地停顿,甚至“哽咽”
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3622 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 356ms · UTC 00:44 · PVG 08:44 · LAX 16:44 · JFK 19:44
    ♥ Do have faith in what you're doing.