Python生产环境迁移到Python 3,推荐使用哪个版本?

普遍都是 py3.4 ?有必要上 3.5、3.6 么?
Python生产环境迁移到Python 3,推荐使用哪个版本?

30 回复

3.4 和 3.5 据说 asyncio 有些差别?


直接上结论:Python 3.9 或 3.10

选3.9是因为它足够成熟稳定,是很多主流Linux发行版(如Ubuntu 22.04 LTS)的默认版本,生态库的支持度极高,几乎不会有兼容性问题,迁移踩坑最少。

选3.10的话,主要是看中了它的模式匹配(match-case) 和更清晰的错误提示,对长期维护的代码可读性有帮助,而且它也已经过了足够长的稳定期。性能上3.10及之后的版本也有优化。

别碰刚出的最新版(比如现在的3.12),等它出到.3或.4小版本再说。老版本(3.7及以下)也尽量别选,官方支持都快结束了。

一句话建议:求稳选3.9,想用点新特性就选3.10。

迁到 3.4 还不如不迁, 现在一大堆支持 python3.x 的库都已经或者打算 drop 3.4 support 了…

。。。这样么

好的,谢谢各位。。。

3.4 有各种奇怪的问题,建议 3.6

在 PYTHON3.6 的源码里面,有很多对 3.4 的吐槽

不都应该是直接上 3.6 么?

ctrl+f 了下 没找到啊…

时刻紧跟最新版,出了 2 的,对旧版几乎无缝兼容
啊, 3.6 对正则未定义转义抛出异常

建议 3.6,,3.6 中的 dict 实现提升很大。。

上新不上旧,一起滚动更新

FB 有个员工在推上说 FB 里有一小半生产环境都跑在 3.6 了

生产环境刚上 3.6

大学里面万年 2.7 #滑稽

3.6 解决大部分 console unicode 问题

经常要用的 Adobe afdko 工具包只支持 2 代。
感觉更新无望了。作者大概不想支持 3 代了。

要上就上最新版

最新版。。。。

asyncio 确实有差别,当年 3.4 踩过坑,后来发现 3.5 asyncio 有些部分重写过了

大学万年是“谭 C ”吧?用 2.7 算不错的学校了

羡慕!我还没学这段呢,直接略过了

升级到 3.x 还要纠结用哪个版本,还是 2.x 好,反正只能用 2.7😂


/* Type structure has tp_finalize member (3.4) */
#define Py_TPFLAGS_HAVE_FINALIZE (1UL << 0) 类似这种的兼容有很多。

emm 我就是只找到了这一处啊 Include Object Python Lib 这 4 个算是源码文件夹吧

3.6 的 string interpolation 非常提升幸福感

我 Windows 下用 3.6,Linux 下用 3.5。

好像 36 重新实现的字典 37 会更快

回到顶部