选择 Python3.6 仍是 Python 3.7

转自: 白月黑羽在线教程:http://www.python3.vip/doc/blog/python/home/html

选择 Python3.6 仍是 Python 3.7

Python 3.7 已经发布了,目前Python的用户,主要使用的版本 应该是 Python3.6 和 Python2.7 ,那么是否是该转到 Python 3.7 呢?python

首先你们要知道Python 3.7 是对 Python 3.6 的升级。Python官方对 3.7 的新特性描述连接以下:sql

https://docs.python.org/3/whatsnew/3.7.html数据库

咱们最须要注意的是 相对于 3.6 来讲, 3.7 在语法上几乎是彻底 兼容, 除了以下这一点:安全

Backwards incompatible syntax changes:

async and await are now reserved keywords.

  

这段话,指出了 3.7 的惟一不兼容 3.6 的地方就是 async 和 await 变成了Python语言中保留的关键字了。async

什么意思?函数

就是 async 和 await 这两个词 就像 import, for, while 这些词同样, 是系统保留特殊用途的关键字。post

也就是说在Python 3.7 里面你不能使用定义 变量、函数之类的 名字测试

好比,我像下面这样定义变量和函数:spa

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 里面的新特性 。 若是是那样的话,必定要 作一个对老的代码覆盖比较充分的测试,防止上线运行的时候出现问题。

 

用Python2.7怎么办呢?

而若是目前 项目使用的是 Python 2.7 运行,那 主要是 Python 2 和 Python 3 之间 的 迁移问题了, 语法差别有些大。

若是项目声明周期比较长的话, 建议仍是 要在合适的时候升级到 Python3。 由于毕竟Python2 在2020年官方就再也不维护,到时候出现什么安全漏洞之类的问题,就比较麻烦了。 或者是 有好用的第三方库, 这些库可能没有 Python2 的版本,那样就更麻烦了。

若是决定吧项目从Python2 升级到 Python3, 目前能够先升级到Python3.6 , 由于业界目前对 3.6 的支持仍是比较广泛的。 等之后 3.7 支持比较广泛后,再作升级不迟。

 

转自: 白月黑羽在线教程:http://www.python3.vip/doc/blog/python/2018071101/

相关文章
相关标签/搜索