![]() | 1 strahe 2016-03-11 11:06:10 +08:00 反正我是一直追 3 的 |
2 tairan2006 2016-03-11 11:24:43 +08:00 更换的性价比太低。。 |
![]() | 3 zhouquanbest 2016-03-11 11:26:12 +08:00 然并卵 只能自己的 project 偷着乐 |
![]() | 4 virusdefender 2016-03-11 11:40:41 +08:00 最近写爬虫用了下,确实没再遇到编码问题。但是以前的 web 项目仍然在继续使用 2 。 发现 PyCharm 对 3 的支持不是很好,很多自动提示都没了,而且还有 bug 。 |
![]() | 5 glasslion 2016-03-11 11:46:27 +08:00 scrapy 已经支持 python3 了 |
![]() | 6 janxin 2016-03-11 11:58:17 +08:00 现在其实对个人而言编码问题并没有这么严重(不做爬虫),实际上更换 Py3 之后性能没有任何提升反而有情况下性能下降是最大的升级阻碍,这个对线上系统而言完全不划算的生意。 最后唠叨一下 fabric 啥时候开发完新版啊.... |
![]() | 7 initialdp 2016-03-11 12:01:52 +08:00 阻挡 3 的是兼容性,是企业已有项目的迁移成本。 |
![]() | 8 jy02201949 2016-03-11 12:01:58 +08:00 毕竟 3 是为了解决 2 臃肿、编码等很多问题才诞生的 |
![]() | 9 raptor 2016-03-11 12:02:05 +08:00 说一个 py3 的编码问题吧: logging 默认输出到 console 的 logging 是采用系统编码,而直接写入 str(即 unicode)会出错,转成 utf-8 则变成 bytes ,在 console 上显示永远是不对的,只能用 FileHandler ,因为这个可以设置 encoding ,才能得到正确的结果。 |
![]() | 10 whisperzzzz 2016-03-11 12:02:24 +08:00 (内心)旧的坑踩的差不多了……谁知道新的坑会有多少…… (说出来的话) Python 2 真是好 TM 蠢啊( |
![]() | 11 raptor 2016-03-11 12:02:59 +08:00 还有一个编码相关的问题就是跟加密相关的函数,全都不支持 str(unicode),必须手工转成 bytes 才能用。 |
![]() | 12 MrEggNoodle 2016-03-11 12:12:09 +08:00 3 取代 2 是时间的问题,好像 py 团队对 2.7 的支持会持续到 19 年,然后全部转向 3 的了。只是现在企业就要看自己转变的性价比有多高, 3 会越来越好, 2 已经没有新特性引入了。其实 2.7 已经兼容了不少 3 的特性的了。 |
![]() | 13 congeec 2016-03-11 12:21:35 +08:00 @janxin 性能? Python 3 最大的性能损失在字符串处理吧。另外好多 Python 3 效率更高的模块模块没有移植到 Python 2 ,比如 os.scandir 。 OrderedDict 在 3 里也用 C 重写了 |
![]() | 14 wizardoz 2016-03-11 13:09:34 +08:00 单从语言的角度来讲当然是 Python3 比 Python2 好。但是有很多很有用的库尚不支持 Python3 ,所以很多时候只能选择 Python2 |
15 neoblackcap 2016-03-11 13:30:18 +08:00 @raptor Python3 里面的 str 函数相当于 Python2 里面的 unicode ,加密函数之前都是用 str 也就是 Python3 里面的 bytes,因此需要类型转换也是很符合常理的。 |
![]() | 16 yy77 2016-03-11 13:59:04 +08:00 关键是 pypy 很长时间都支持 python2 ,现在虽然有了 python3 的支持,但是对比 python2 的版本依然很不成熟。多少计算密集的应用和库能够放弃 pypy 啊。 |
17 xchange 2016-03-11 14:02:08 +08:00 ![]() 现在公司所有项目都在用 Python 3.5 ,很开心 |
![]() | 18 ericls 2016-03-11 14:04:21 08:00 via iPhone 用了一年多 3 了 没遇见过任何问题 不知道那些说 3 很多不兼容的问题哪里来的 |
![]() | 20 jugelizi 2016-03-11 14:09:19 +08:00 新项目当然可以去用 已有的去迁移成本未未知啊 |
![]() | 21 likuku 2016-03-11 14:13:35 +08:00 遇到老系统只有 py3.1 ,结果好几种 mysql 模块支持的最低版本 3 都比 3.1 高, 最后为了及时解决问题,还是直接用回 py2.7 。 某些旧系统发行版最高也就 py3.1 了。 |
![]() | 22 fy 2016-03-11 15:43:25 +08:00 @virusdefender 并没有发现 pycharm 失灵…… pycharm 一直在跟进最新版本啊。 python3.3 以后基本成熟,用的很开心 |
![]() | 23 virusdefender 2016-03-11 15:47:43 +08:00 @fy 不是失灵,而是没有 Python2 智能了,不知道为什么 |
![]() | 24 mathgl 2016-03-11 17:52:47 +08:00 我在等 pypy |
![]() | 25 ahxxm 2016-03-11 22:38:29 +08:00 @virusdefender maybe you need to choose python3 interpretor? (shurufa huai le .. ) |
![]() | 26 virusdefender 2016-03-11 22:42:28 +08:00 via Android @ahxxm 我当然选了 |
27 em3rge 2016-03-11 22:43:26 +08:00 @virusdefender then what kind of smart do you want? |
![]() | 28 Pastsong 2016-03-11 22:44:37 +08:00 我们都这么觉得 |
29 em3rge 2016-03-11 22:47:59 +08:00 @virusdefender 我一直就只用 refactor 和自动补全,没有遇到过什么问题,感觉完全满足需求。。就写 2/3 兼容代码时候没有 type annotation 有时候会没提示 |
![]() | 30 virusdefender 2016-03-11 22:51:05 +08:00 via Android @em3rge 我写的 django |
31 em3rge 2016-03-11 22:54:42 +08:00 @virusdefender 试试用 def func(param: int) -> bool 这个语法 |
32 zaishanfeng 2016-03-11 23:01:35 +08:00 via Android 然而实际项目很少有人用 3 除了编码问题 真的没有必要换 再说了连个编码都搞不定 怎么艹 |
![]() | 33 Feiox 2016-03-12 10:05:32 +08:00 用 2 的好处,唉, pypy 啥时候支持 3.4+ 啊。。。 |
![]() | 34 gamexg 2016-03-12 12:40:11 +08:00 迁移麻烦,虽然 py3 过了测试,但是还是不敢迁移,测试不能覆盖所有情况。 |
![]() | 35 raptor 2016-03-12 23:41:28 +08:00 @likuku 旧系统的确坑,换成 py2 有时也会被坑,比如某些系统里的 py2 居然还是 2.4 … 不过不是太旧,能跑 docker 的系统还是可以有选择的。 |
36 fbwfbi 2016-03-18 02:13:24 +08:00 一直用 python3 写了一年多的项目,之前 py2 的那些不兼容的地方反而忘了 |
![]() | 37 leafonsword 2017-07-04 10:07:34 +08:00 django 官方建议用 Python 3,checkio 只支持 Python 3,是时候换到 Python 3 了 |