选择 Python3.6 还是 Python 3.7
Posted allenblogs
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了选择 Python3.6 还是 Python 3.7相关的知识,希望对你有一定的参考价值。
转自 白月黑羽Python在线教程 : http://www.python3.vip/doc/blog/python/2018071101/
Python 3.7
已经发布了, 又有新版本玩喽!!
目前还在用 Python3.6 和 Python2.7 的朋友,是不是该立即转到 Python 3.7 呢?
首先大家要知道Python 3.7 是对 Python 3.6 的升级。
点击这里打开 Python官方对 3.7 的新特性描述。
我们最需要注意的是 相对于 3.6 来说, 3.7 在语法上几乎是完全 兼容, 除了如下这一点:
Backwards incompatible syntax changes: async and await are now reserved keywords.
这段话,指出了 3.7 的唯一不兼容 3.6 的地方就是 async 和 await 变成了Python语言中保留的关键字了。
什么意思?
就是 async 和 await 这两个词 就像 import, for, while 这些词一样, 是系统保留特殊用途的关键字。
也就是说在Python 3.7 里面你不能使用 async 和 await 这两个词 作为 变量、函数、类 的名字
比如,我像下面这样定义变量和函数:
async = 1 def await(): pass
使用Python3.6 运行,没有问题, 而在Python 3.7 里面就会报如下错误
SyntaxError: invalid syntax
所以,如果项目 目前使用的是 Python 3.6 ,而且项目又比较大的话,个人建议不用太着急转到 3.7 上去。 因为不知道你的项目代码和依赖的第三方库的代码是不是做过3.7的兼容性测试, 毕竟 3.7 刚刚出来不久。
比如,白月黑羽写这篇文章的时间是2018年7月13号,我就发现 postgresql 数据库的Python API 驱动库, psycopg2的安装在 Python 3.7 上就有问题。
3.7 的 pip 执行
pip install psycopg2-binary
安装就会失败,提示 Error: pg_config executable not found
而 3.6的pip安装就没有问题。
所以,我们最好等到3.7被普遍使用了,再转过去。
现在要转到Python3.7, 除非 有你们项目特别渴望使用的 Python3.7 里面的新特性 。 如果是那样的话,一定要 做一个对老的代码覆盖比较充分的测试,防止上线运行的时候出现问题。
而如果目前 项目使用的是 Python 2.7 运行,那 主要是 Python 2 和 Python 3 之间 的 迁移问题了, 语法差异有些大。
如果项目声明周期比较长的话, 建议还是 要在合适的时候升级到 Python3。 因为毕竟Python2 在2020年官方就不再维护,到时候出现什么安全漏洞之类的问题,就比较麻烦了。 或者是 有好用的第三方库, 这些库可能没有 Python2 的版本,那样就更麻烦了。
如果决定吧项目从Python2 升级到 Python3, 目前可以先升级到Python3.6 , 因为业界目前对 3.6 的支持还是比较普遍的。 等以后 3.7 支持比较普遍后,再做升级不迟。
以上是关于选择 Python3.6 还是 Python 3.7的主要内容,如果未能解决你的问题,请参考以下文章