Python3 在团队中不被支持,如何说服同事使用 Python3?

last post: https://www.v2ex.com/t/356374

新项目,做机器学习和数据分析,项目还没有开始,预计会使用 docker ,然后已经有一些代码是 python2 实现了的。
Python3 在团队中不被支持,如何说服同事使用 Python3?

35 回复

“哥们,这问题我熟。直接上干货,给你几个硬核理由和具体操作。

核心论点就三个:

  1. 官方已停止对Python 2的支持,这意味着没有安全更新、没有bug修复。用Py2等于给项目埋雷。这是最无可辩驳的技术事实。
  2. 生态已全面转向Py3。现在所有主流库(NumPy, Pandas, Django, Flask, Requests等)的新特性、性能优化都只针对Py3。为了用新工具、提升开发效率,必须升级。
  3. Py3本身就是更好的语言print变函数、真正的除法、统一的字符串类型(Unicode)、更清晰的字节/文本处理,这些特性让代码更健壮、更少坑。

具体怎么说服?别光说,做给他们看:

  • 准备一个“移植指南”:把你们代码库里常见的Py2写法,对应到Py3的写法列出来。比如:
    # Python 2 常见写法 -> Python 3 写法
    print "hello"          -> print("hello")
    xrange(10)            -> range(10)
    dict.iteritems()      -> dict.items()
    `raw_input()`         -> `input()`
    
    这能极大降低同事对迁移复杂度的恐惧。
  • 搞个小型试点:挑一个非核心但又有代表性的模块或脚本,你先把它移植到Py3,确保所有测试通过。然后演示给团队看:“看,这个服务已经跑在Py3上了,没啥问题,这是改动的diff(差异对比)。”
  • 利用工具:推荐用 2to3 工具做初步转换,再用 futurize (来自 python-future)让代码能同时兼容Py2和Py3。你可以写个脚本演示如何自动化这个过程。
  • 算笔账:强调 “现在不迁,以后迁移成本更高” 。随着时间推移,依赖的旧版库会越来越难维护,招新人也更难(现在新手都学Py3)。

总结建议: 用事实和工具降低迁移门槛,通过小范围试点证明可行性。

少数服从多数

尽量去写 2 和 3 都兼容的代码呗

几乎所有的同事都不支持用 es6 哎

我不管那么多,最近在学 3

该换个工作环境了?

就像我上家公司不支持用 JDK8 一样 QAQ

import six

新项目妥妥推荐上 3

我手头 2 个项目直接 Java6 升级到 Java8 ,反正没报错,哈哈

java 在这点不得不服

标准回复不是:等着过年?

公司最主要的项目已经在使用 Python 3.6 了。

哪个用着舒服就用哪个呗 。。。。

2020 年 Python2 都停止支持了,难道准备 3 年不到的时间内集体删库跑路吗?

未来是属于 Python 2 和 Python 4 的,学 Python 3 这种 dead language 干嘛

今天搞完了 python3 的 docker image ,什么 jupyterhub , tensorflow, scikit-learn 都装上了,晚上开始跟同事们撕逼

败!!! 寡不敌众。。。

准备把 docker image 改成 python2 的,然后发现 jupyterhub 竟然只支持 python 3

卒!!!

然后发现这个:

title: Sunsetting Python 2 support in scientific python projects
url: http://www.python3statement.org/

明天不准备撕了,毕竟老板永远是对的:doge:

还要留着时间找女朋友 :doge:

只要不是 jdk6 及以下都好说

其实是因为各种机器学习教程都用 Python2

几乎同事都不支持我用 ie6 诶

#8 二三得六

未来是属于 python10 ,学这些过度语言干嘛。。。

同时支持

历史的轮子,总得有人推着往前滚。

若真有必要转换到 Py3 可以到这里来
http://python3porting.com/

把他们都放倒,你就能安心用 py3 了。

谁叫 Python 没有 Java 那么 NB 的兼容性呢


各有各的苦恼啊
JAVA 为了兼容性采用类型擦除的假泛型被很多人吐槽,,而且现在泛型用了这么久了肯定更加改不了了,,估计永远都改不了了

Java 假泛型和真泛型语言如 C++ 、 C# 比有什么弱点: https://www.zhihu.com/question/24309599

几乎所有的同事都不支持用 win10 哎

别听那些人吹升 Python3
代码出问题的怎么办?
谁负责?能不能负责?损失谁负?
你考虑的是升级之后的特性多么多么炫酷,项目垮了怎么办?

楼主好像是在研究选择 Python2.7 作开发,还是用 Python2.7 做开发。他说项目还没开始。

当然是选择 Python2.7 作开发 (逃

回到顶部