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发布文章时,特别是那种多用户投稿的文章一 ...
随机推荐
- Codeforces_729_C
http://codeforces.com/problemset/problem/729/C 二分找最小容量,然后找符合的最小花费. #include<iostream> #include ...
- Codeforces 977D Divide by three, multiply by two(拓扑排序)
Polycarp likes to play with numbers. He takes some integer number xx, writes it down on the board, ...
- sqlserver partitition and partition table --- partition show
I can not believe that I had done this about two years Now we know there is totally different betwee ...
- lua学习之函数篇
函数 函数是对语句和表达式进行抽象的主要机制 两种用法 一是可以完成特定的任务,一句函数调用被视为一条语句 二是以只用来计算并返回特定的结果,视为一句表达式 print("Hello, Wo ...
- Go语言实现:【剑指offer】从尾到头打印链表
该题目来源于牛客网<剑指offer>专题. 输入一个链表,按链表从尾到头的顺序返回一个ArrayList. Go语言实现: type ListNode struct { Val int ...
- 在IDEA中如何使用lombok插件
lombok 插件 lombok是一款可以精减java代码.提升开发人员生产效率的辅助工具,利用注解在编译期自动生成 setter/getter/toString()/constructor之类的代码 ...
- STM32F4相关
常用术语 AHB与APB的地位相当于PC中的南北桥,是两道独立的片内总线.AHB:advanced high-performance bus:APB: advanced peripherals bus
- 维基逃离MySQL 力挺开源数据库 MariaDB
近日全球著名百科类网站维基百科宣布,将不会再用MySQL数据库,据国外媒体报道,很多年,MySQL一直是热门的开源数据库,不过在被甲骨文收购后,面临闭源的风险.因此维基百科将切换到另外一款开源数据库M ...
- Rip 动态路由协议
路由信息协议(RIP) 是内部网关协议IGP中最先得到广泛使用的协议. Routing Information Protocol) RIP是一种分布式的基于距离矢量的路由 ...
- centos7.5下yum安装php-5.6.40(LNMP环境)
cd /etc/yum.repos.d/ yum -y install epel-release #<===安装centos7下php5.6的epel和remi源 rpm -ivh http:/ ...