Python3.6的Type Hint功能很完善了,我垂涎已久,什么时候将公司(创业公司)的商业项目移植到3.6比较好,不至于出篓子。
当前使用Python3.5
Python3.6的Type Hint功能很完善了,我垂涎已久,什么时候将公司(创业公司)的商业项目移植到3.6比较好,不至于出篓子。
当前使用Python3.5
3.6正式版已经在12月23日发布了,所以现在升级3.6应该是没有问题的;
自行阅读下python3.6的升级公告,就可以知道有哪些东西不兼容3.5了;
推荐开发使用Python ide工具,比如pycharm,这样在开发过程中,当你使用的语法,或者包在下一个版本会不兼容,或者不推荐的时候,会自动提示,比如你用Python2写如下语句:
print "Test!"
就会提示说该print会在python3中不兼容
========啰嗦分割线==========
1.生产环境,Python的项目一定要自行编译python版本,并使用virtualenv工具制作虚拟环境,这样做的好处有很多:
版本切换很快,只要source下相应的版本就已经切换版本了;
各个项目中的包依赖不会冲突,每个虚拟环境中的包都可以按照需求安装相应的包版本,不会存在冲突;
更符合12规范
2.我很喜欢新的东西,当然是正式版的东西,一个新版本的出现必然有他的价值存在,不能因为一点不兼容就直接一刀砍,我现在这个公司,以前使用的django还是1.6版本的,现在是1.10,我来到这个公司第一件事情就是升级django,然后慢慢找不兼容(使用ide很容易将不兼容找出来)
2 回答5.2k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
4 回答1.5k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答924 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
稳妥的做法,先在测试环境预演方案,完善方案细节,制定成可以遵循的文档。
再定个时间(可能访问量少的时候),按照文档,在线上环境进行操作。
线上操作的时候,稳妥的做法,也是推荐准备多个机器,比如现在的线上web-server 有 A/B/C 三台机器,那么你先把流量都导到BC上,然后在A完全没有处理请求后,再对A进行Python解释器的升级。成功之后,再以此类推到其他机器。
预演方案大概也是如下步骤:
将预演方案应用于线上环境。尽可能在访问量少的时候操作升级。尽可能考虑最严重的后果,考虑是否需要有灾难处理的方法。