选择 Python3.6 还是 Python 3.7

摘要:
首先,您应该知道Python 3.7是对Python 3.6的升级。因此,如果项目当前使用的是Python 3.6,并且项目相对较大,我建议不要急于使用3.7。例如,白月亮和黑羽毛在2018年7月13日写了这篇文章。我发现postgresql数据库的PythonAPI驱动程序库psycopg2安装在Python3.7上。现在您需要切换到Python 3.7,除非您的项目特别渴望使用Python 3.7中的新功能。如果当前项目使用Python 2.7,则主要是Python 2和Python 3之间的迁移。语法差异有点大。

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

选择 Python3.6 还是 Python 3.7

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

首先大家要知道Python 3.7 是对 Python 3.6 的升级。Python官方对 3.7 的新特性描述链接如下:

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 和 await 这两个词 就像 import, for, while 这些词一样, 是系统保留特殊用途的关键字。

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

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

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/

免责声明:文章转载自《选择 Python3.6 还是 Python 3.7》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇c++学习笔记——字面值常量类.net开发常用的第三方开发组件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux系统python3的pip配置

一、很多读者Python安装完成之后,想要下载相关的包,例如:numpy、pandas等Python中这些基础的包,但是,发现pip根本用不了,主要表现在一下几种情况:   二、出现这种情况其实并不意外,虽然Python3.6.3自带了pip,但是安装Python3.6.3之后还需要我们进行进一步的配置。下面配置pip3的环境变量。 截图中/opt/mod...

python3 字符串方法

1.capitalize() 将字符串的第一个字符改为大写 1 >>> s='i love cnblog' 2 >>> s.capitalize() 3 'I love cnblog' 2.casefold() 将字符串所有字符改为小写 1 >>> (s.capitalize()).casefold()...

Dirsearch 快速开始

Dirsearch 一个 web 路径扫描工具 本文版本:v0.4.1(2020.12.8) 安装 下载源代码: git clone https://github.com/maurosoria/dirsearch.git 安装需求的 python 库: cd dirsearch pip3 install -r requirements.txt 或者使用...

python3 爬虫之爬取安居客二手房资讯(第一版)

#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Author;Tsukasa import requests from bs4 import BeautifulSoup import pandas import time url_all = [] url_in = input('输入你所需...

Python3 tkinter基础 Listbox delete 删除单个、所有元素

         Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda : 4.5.11    typesetting : Markdown   删除单个元素 code """ @Author : 行初心 @Date...

python3 字符串base64编码

在一些项目中,接口的报文是通过base64加密传输的,所以在进行接口自动化时,需要对所传的参数进行base64编码,对拿到的响应报文进行解码; str(源字符串)--str(加密后)--str(解密) Python 2 将 strings 处理为原生的 bytes 类型,而不是 unicode, Python 3 所有的 strings 均是 unico...