Python 3.8 已发布,现在是切换至新版本的好时机吗?
Python 3.8 已于前两周正式发布,不过目前大多数开发者主要使用的仍是 Python 3.7.x 或更旧的版本。
!
事实上,立刻切换到使用 Python 3.8 可能会引发一些问题。想知道何时切换至 Python 3.8?下文将简要概述切换主要的 Python 版本以及进行切换时可能会遇到的问题(来自一名开发者的心得经验)。
1.缺少软件包
opencv-python是一个十分受欢迎的软件包,其下载量约为 5000 万。但正如本文提到的一样,如果你现在(2019年10月28日)尝试在 Python 3.8 上安装它会发现并不起作用:
$ docker run python:3.8-slim pip install opencv-pythonERROR: Could not find a version that satisfies the requirement opencv-python (from versions: none)ERROR: No matching distribution found for opencv-python
原因为何?如果我们现在在 PyPI 上访问 opencv-python 的文件页面,将会看到没有可用的面向 Python 3.8 的软件包。晚些时候这个问题可能会被修复。但是现在的情况是,在新的主要版本发布之后的不久时间内,我们将无法下载许多库。
有时候,这些问题只需重新构建库即可解决,有时候则需要进行一些代码调整。但不管是什么问题,Python 的主要版本和软件包的可用性之间都存在一些滞后。
2.Python 中的错误
Python 3.7.0 于 2018 年 6 月 27 日发布,3.7.1 于 4 个月后 2018 年 10 月 20 日发布,其中包括许多错误修正。所以按照惯例,Python 3.8 将来也会有一个错误修复版本,但是鉴于主要版本之间的间隔期为 18 个月,因此会产生很多新的但不会广泛使用的代码。这意味着后续版本将具有大量的错误修复。
3.无法真正使用新的语法
Python 3.8 引入了新语法,但其他工具尚未同步跟进以支持新语法,例如自动格式化程序和代码检测工具等。除非“配套设施”已同步更新,否则我们将无法真正使用新的语法。
所以什么时候切换至使用主要的新 Python 版本?
至少,我们需要等到:
所有的库都明确支持新的 Python 版本。
所依赖的所有工具都明确支持新的 Python 版本。
因此,不妨在新的主要 Python 版本发布后等待几个月,我们再去尝试。如果确实迫不及待,可以等到第一个小版本更新发布后再尝试,这里的情况是 Python 3.8.1。
Python 3.8 已于前两周正式发布,不过目前大多数开发者主要使用的仍是 Python 3.7.x 或更旧的版本。
事实上,立刻切换到使用 Python 3.8 可能会引发一些问题。想知道何时切换至 Python 3.8?下文将简要概述切换主要的 Python 版本以及进行切换时可能会遇到的问题(来自一名开发者的心得经验)。
1.缺少软件包
opencv-python是一个十分受欢迎的软件包,其下载量约为 5000 万。但正如本文提到的一样,如果你现在(2019年10月28日)尝试在 Python 3.8 上安装它会发现并不起作用:
$ docker run python:3.8-slim pip install opencv-pythonERROR: Could not find a version that satisfies the requirement opencv-python (from versions: none)ERROR: No matching distribution found for opencv-python
原因为何?如果我们现在在 PyPI 上访问 opencv-python 的文件页面,将会看到没有可用的面向 Python 3.8 的软件包。晚些时候这个问题可能会被修复。但是现在的情况是,在新的主要版本发布之后的不久时间内,我们将无法下载许多库。
有时候,这些问题只需重新构建库即可解决,有时候则需要进行一些代码调整。但不管是什么问题,Python 的主要版本和软件包的可用性之间都存在一些滞后。
2.Python 中的错误
Python 3.7.0 于 2018 年 6 月 27 日发布,3.7.1 于 4 个月后 2018 年 10 月 20 日发布,其中包括许多错误修正。所以按照惯例,Python 3.8 将来也会有一个错误修复版本,但是鉴于主要版本之间的间隔期为 18 个月,因此会产生很多新的但不会广泛使用的代码。这意味着后续版本将具有大量的错误修复。
3.无法真正使用新的语法
Python 3.8 引入了新语法,但其他工具尚未同步跟进以支持新语法,例如自动格式化程序和代码检测工具等。除非“配套设施”已同步更新,否则我们将无法真正使用新的语法。
所以什么时候切换至使用主要的新 Python 版本?
至少,我们需要等到:
所有的库都明确支持新的 Python 版本。
所依赖的所有工具都明确支持新的 Python 版本。
因此,不妨在新的主要 Python 版本发布后等待几个月,我们再去尝试。如果确实迫不及待,可以等到第一个小版本更新发布后再尝试,这里的情况是 Python 3.8.1。
Python 3.8 已发布,现在是切换至新版本的好时机吗?的更多相关文章
- 在macOS上通过pyenv安装和切换多版本Python
1. 安装homebrew 官网 http://brew.sh/index_zh-cn.html 打开终端,在终端中粘贴如下脚本 /usr/bin/ruby -e "$(curl -fsSL ...
- php大力力 [045节] 兄弟连高洛峰 PHP教程 2014年[已发布,点击下载]
http://www.verycd.com/topics/2843130/ 第1部分 WEB开发入门篇第1章LAMP网站构建1.[2014]兄弟连高洛峰 PHP教程1.1.1 新版视频形式介绍[已发布 ...
- Apache Qpid Python 1.35.0 发布
Apache Qpid Python 1.35.0 发布了,Apache Qpid (Open Source AMQP Messaging) 是一个跨平台的企业通讯解决方案,实现了高级消息队列协议.提 ...
- iOS已发布应用中对异常信息捕获和处理
iOS已发布应用中对异常信息捕获和处理 iOS开发中我们会遇到程序抛出异常退出的情况,如果是在调试的过程中,异常的信息是一目了然,但是如果是在已经发布的程序中,获取异常的信息有时候是比较困难的. iO ...
- Eclipse4.3正式版已发布
Eclipse4.3正式版已发布,传送门http://www.eclipse.org/downloads/
- 测试开发Python培训:自动发布新浪微博-技术篇
测试开发Python培训:自动发布新浪微博-技术篇 在前面我们教大家如何登陆,大家需要先看自动登陆新浪微博(http://www.cnblogs.com/laoli0201/articles/48 ...
- FineUICore(基础版)v5.4.0已发布!
FineUICore(基础版)已发布,请先加入知识星球,下载后可以永久免费商用:
- 微软已发布 Windows 10 Timeline 功能的官方 Chrome 插件
微软已发布 Windows 10 Timeline 功能的官方 Chrome 插件,这个插件名为 Web Activities,功能是跨 Windows 10 和 Microsoft Launcher ...
- 如何将wordpress所有文章批量改为已发布状态
用wordpress建站的一个好处就是bd站长工具平台上有数据结构插件,可以认为bd默认支持wp发展,另外一种建站程序是discuz.我们在用wordpress发布文章时,特别是那种多用户投稿的文章一 ...
随机推荐
- 视觉slam十四讲ch5 joinMap.cpp 代码注释(笔记版)
#include <iostream> #include <fstream> using namespace std; #include <opencv2/core/co ...
- 利用Kubernetes中的leaderelection实现组件高可用
在Kubernetes中,通常kube-schduler和kube-controller-manager都是多副本进行部署的来保证高可用,而真正在工作的实例其实只有一个.这里就利用到 leaderel ...
- Dapper系列 作者:懒懒的程序员一枚
Dapper 第一篇简单介绍什么是小巧玲珑?Dapper如何工作安装需求方法参数结果常用类型 Dapper 第二篇 Execute 方法介绍描述存储过程Insert语句Update语句Delete语句 ...
- O准备如何苟进复赛圈?华为软挑开挂指南(附赛题预测)
事先声明,这不是华为软挑的软广,我也不是海军. 这篇文章纯粹是心血来潮,原因是去年上传到github的参赛代码,前几天又有两个人star和fork了. 记得star热潮还是去年4月复赛刚结束的那几天, ...
- Language Model
在某次会上的语言模型的ppt.
- generator 和 co模块
// 类数组的生成器 // 类数组的生成器 function fns() { let obj = {0:1,1:2,2:3,length: 3}, [Symbol.iterator]: functio ...
- C#个推SDK推送安卓+iOS
下载个推SDK,找到这两个dll直接引用. using引用 using com.gexin.rp.sdk.dto; using com.igetui.api.openservice; using co ...
- asp.net core 3.1 入口:Program.cs中的Main函数
本文分析Program.cs 中Main()函数中代码的运行顺序分析asp.net core程序的启动,重点不是剖析源码,而是理清程序开始时执行的顺序.到底用了哪些实例,哪些法方. asp.net c ...
- nginx 正向代理与反向代理
一.介绍 反向代理:让Internet上的用户可以访问局域网内的资源,中间设置一个代理服务器,如下所示,红色圈是指局域网内的站点(myweb站点是我们的站点,例如iis).箭头不能反过来 正向代理:客 ...
- [MySQL] mysql索引的长度计算和联合索引
1.所有的索引字段,如果没有设置not null,则需要加一个字节.2.定长字段,int占4个字节.date占3个字节.char(n)占n个字符.3.变长字段,varchar(n),则有n个字符+两个 ...