为了账号安全,请及时绑定邮箱和手机立即绑定

什么时候将生产环境切换到Python3.6比较好?

什么时候将生产环境切换到Python3.6比较好?

炎炎设计 2019-02-20 08:25:08
Python3.6的Type Hint功能很完善了,我垂涎已久,什么时候将公司(创业公司)的商业项目移植到3.6比较好,不至于出篓子。当前使用Python3.5
查看完整描述

5 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

稳妥的做法,先在测试环境预演方案,完善方案细节,制定成可以遵循的文档。

再定个时间(可能访问量少的时候),按照文档,在线上环境进行操作。

线上操作的时候,稳妥的做法,也是推荐准备多个机器,比如现在的线上web-server 有 A/B/C 三台机器,那么你先把流量都导到BC上,然后在A完全没有处理请求后,再对A进行Python解释器的升级。成功之后,再以此类推到其他机器。

预演方案大概也是如下步骤:

* 先在测试环境编译Python3.6源码。
* 将Python3.5启动的服务,改为Python3.6启动。
* 测试(请尽可能详细),如果发现完全没问题,那么说明该操作可以在线上环境同样操作。

将预演方案应用于线上环境。尽可能在访问量少的时候操作升级。尽可能考虑最严重的后果,考虑是否需要有灾难处理的方法。

查看完整回答
反对 回复 2019-03-04
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

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很容易将不兼容找出来)

查看完整回答
反对 回复 2019-03-04
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

啊?难道3.4, 3.5, 3.6都是不兼容的?

查看完整回答
反对 回复 2019-03-04
?
月关宝盒

TA贡献1772条经验 获得超5个赞

三四年吧,没那么快普及。

查看完整回答
反对 回复 2019-03-04
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

我们公司还用着2.6.6呢......

查看完整回答
反对 回复 2019-03-04
  • 5 回答
  • 0 关注
  • 875 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信