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 已发布,现在是切换至新版本的好时机吗?的更多相关文章

  1. 在macOS上通过pyenv安装和切换多版本Python

    1. 安装homebrew 官网 http://brew.sh/index_zh-cn.html 打开终端,在终端中粘贴如下脚本 /usr/bin/ruby -e "$(curl -fsSL ...

  2. php大力力 [045节] 兄弟连高洛峰 PHP教程 2014年[已发布,点击下载]

    http://www.verycd.com/topics/2843130/ 第1部分 WEB开发入门篇第1章LAMP网站构建1.[2014]兄弟连高洛峰 PHP教程1.1.1 新版视频形式介绍[已发布 ...

  3. Apache Qpid Python 1.35.0 发布

    Apache Qpid Python 1.35.0 发布了,Apache Qpid (Open Source AMQP Messaging) 是一个跨平台的企业通讯解决方案,实现了高级消息队列协议.提 ...

  4. iOS已发布应用中对异常信息捕获和处理

    iOS已发布应用中对异常信息捕获和处理 iOS开发中我们会遇到程序抛出异常退出的情况,如果是在调试的过程中,异常的信息是一目了然,但是如果是在已经发布的程序中,获取异常的信息有时候是比较困难的. iO ...

  5. Eclipse4.3正式版已发布

    Eclipse4.3正式版已发布,传送门http://www.eclipse.org/downloads/

  6. 测试开发Python培训:自动发布新浪微博-技术篇

    测试开发Python培训:自动发布新浪微博-技术篇   在前面我们教大家如何登陆,大家需要先看自动登陆新浪微博(http://www.cnblogs.com/laoli0201/articles/48 ...

  7. FineUICore(基础版)v5.4.0已发布!

    FineUICore(基础版)已发布,请先加入知识星球,下载后可以永久免费商用:

  8. 微软已发布 Windows 10 Timeline 功能的官方 Chrome 插件

    微软已发布 Windows 10 Timeline 功能的官方 Chrome 插件,这个插件名为 Web Activities,功能是跨 Windows 10 和 Microsoft Launcher ...

  9. 如何将wordpress所有文章批量改为已发布状态

    用wordpress建站的一个好处就是bd站长工具平台上有数据结构插件,可以认为bd默认支持wp发展,另外一种建站程序是discuz.我们在用wordpress发布文章时,特别是那种多用户投稿的文章一 ...

随机推荐

  1. 脚本、脚本语言、shell脚本

    脚本是批处理文件的延伸,是一种纯文本保存的程序,一般来说的计算机脚本程序是确定的一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支等.脚本程序相对一般程序开发来说比较接近自然语言,可 ...

  2. 前端:CSS第四章第一节

    块级元素一行只有一个,比如P标签 CSS层叠样式表,意思就是样式是可以叠加的,比如下面的代码 <style> .ok{ color: aqua; } .blue{ color: #5283 ...

  3. Shell:setfacl缩小普通用户的权限

    简介 我们在使用jumpserver的过程中,会向主机推送普通用户,但普通用户有上传下载文件的权限,要想对这些权限进行管控就比较困难,之前考虑通过将$PATH变量下的命令的权限设置为750,设置完发现 ...

  4. ubuntu 18. root登录图形界面

    修改文件 vim /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf 增加两行: greeter-show-manual-login=true all-g ...

  5. 【题解】战争系列-截获密文I

    给你一个最短代码: #include <iostream> #include <string> int main(){ std::string str; std::cin &g ...

  6. 在 Vs2013中查看类的内部布局

    第一步:在Visual Studio中配置命令行环境(Command Prompt) 来自:https://blog.csdn.net/u013553529/article/details/77417 ...

  7. mybatis级联查询,多对一查询问题

    在使用Mybatis进行多表级联查询时遇到了一个问题:查询结果只有一项,但正确结果是两项.经测试,SQL语句本身没有问题. 在SQL映射文件(XML)中: <!-- 级联查询数据 --> ...

  8. k8s系列---EFK日志系统

    文章拷于:http://blog.itpub.net/28916011/viewspace-2216748/   用于自己备份记录错误 一个完整的k8s集群,应该包含如下六大部分:kube-dns.i ...

  9. 杭电--1009 C语言实现

    思路:要用有限的猫粮得到最多的javabean,则在房间中得到的javabean比例应尽可能的大. 用一个结构体,保存每个房间中的javabean和猫粮比例和房间号,然后将结构体按比例排序,则从比例最 ...

  10. 珠峰-node

    ##### 文件流的读写. ##### 文件流对pipe的封装. ####