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