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 2
现在公司所有项目都在用 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 了
|