热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

为什么Python2更新到Python3这么慢

这篇文章主要介绍为什么Python2更新到Python3这么慢,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!作为目前最为流行的编程

这篇文章主要介绍为什么Python2更新到Python3这么慢,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

作为目前最为流行的编程语言,Python 的出现让计算机编程不再是生僻的专业技能,而是常人都能学习和使用的万金油,它也是人工智能领域里最为常用的语言之一。不过在三个月内,Python 或许要经历史上最大的一次变化。

为什么Python2更新到Python3这么慢

昨天,Python 官方网站的一纸声明《Python 2 的落幕》引发了人们的广泛讨论:该开发社区表示,官方对于 Python 2 的支持将会在 2020 年 1 月 1 日结束,在这之后即使是出现安全问题,旧版本的语言也不会得到任何改进。人们现在必须立即转移到 3.0 以上版本了。

目前,仍有一些开发者以志愿者的身份维护 Python2 语言。不过他们已共同决定,2020 年 1 月 1 日将是 Python2「生命终结」的那一天。该日之后,所有 Python2 相关的维护都将终止。

为什么 Python2 更新到 Python3 这么慢

不太了解编程的读者可能会有个疑问:总是提 Python3 比 Python2 好太多,为什么还是有人不更新呢?

机器之心认为可能主要有以下几个原因:

1. 工程稳定性相比软件的更新速度更为重要。

编程语言是构成软件的基石,编程语言如果发生了更新换代,软件的更新不是一件小事,需要全面地对所有代码进行更新。在这一过程中,如果出现新旧版本不兼容、代码稳定性变差等情况,可能会影响到用户的持续使用。因此,对于一些版本迭代,很多软件开发者选择不更新。宁可保证用户使用的稳定性,也不能急于更新到最新版本。

2. Python 官方「允许」Python2 持续存在。

Python 官方在文档中也提到,大版本的更新有可能会「伤害」开发者。具体而言,如果在 2006 年就迅速要求开发者放弃 Python2,则很多开发者可能因为开发成本问题,直接放弃 Python。繁荣的开发者社区是维持 Python 编程语言地位的重要条件,因此官方一直在更新维护 Python2,让更多的开发者留存在社区中。

3. Python2 确实也好用。

虽然相比 Python3,Python2 存在很多大的问题,但是 Python2 依然也是一个开发者友好的 Python 版本,在 Python2 时期就有很多开源库支持了。因此,一些开发者希望继续使用 Python2。

这些原因下来,Python3 取代 Python2 的进程就拖了十来年。不过,随着机器学习的发展,机器学习领域对编程语言的性能有很高的要求,且大部分新的工具都支持 Python3。因此,使用性能更好,有更多工具支持的 Python3 成为了开发者的必然选择。

放弃支持 Python2 的软件列表

2017 年,机器之心曾报道过将会放弃 Python2 的开源工具。目前,这一列表又长了很多。

为什么Python2更新到Python3这么慢

TensorFlow、Scikit-learn、Pandas、XGBoost 等工具已经准备放弃 Python2。

为什么Python2更新到Python3这么慢

同时停止支持的还包括 Numpy、Matplotlib、Jupyter Notebook 等。

为什么Python2更新到Python3这么慢

还有很多如 Cython、IPython 在内的工具。

为什么Python2更新到Python3这么慢

为什么Python2更新到Python3这么慢

以上为已经放弃 Python2 的开源工具列表(不完全统计)。从这个列表可以看到,Python 的生态系统是多么庞大。

下表显示了多个项目确定停止支持 Python 2 的时间。从该表中可以得知每个项目的某个版本是否支持 Python 2、发布时间线以及扩展支持的时间。(Python 自己的时间线:https://docs.python.org/devguide/#status-of-python-branches)

为什么Python2更新到Python3这么慢

官方答疑

官方同时提供了一些相关的答疑,机器之心整理如下:

为什么要终止 Python2?

答:终止 Python2 是因为我们要更好地帮助开发者。

Python2 是 2000 年发布的。一些年之后,我们意识到需要对 Python 进行一次大的更新升级。因此在 2006 年,我们开始了 Python3 的开发工作。因为很多人在当时没有更新,而我们也不希望这次更新给他们造成损害,因此多年来我们一直在维护并公开新的 Python2 和 Python3 版本。

但是这样一来,维护 Python 的工作变得非常困难。Python2 中有一些改进和维护是很难进行下去的。这会挤占我们提升 Python3 速度和性能的精力。

而且,如果还有很多人继续使用 Python2,那些用 Python 开发程序的开源工作者工作起来会更困难。他们不能使用 Python3 中的新特性让开源工具变得更好用。

我们不想伤害使用 Python2 的开发者,因此在 2008 年,我们宣布 Python2 将在 2015 年终止,并希望大家能够更新。当时,一些人更新了,但是还有一些人留在了 Python2 上,因此我们将终止时间推后到了 2020 年。

目前 Python2 还有多久的寿命?

答:从 2019 年 9 月 10 日起算还有 3 个月 21 天。有一个倒计时,在 pythonclock.org (https://pythonclock.org/) 网站上。

为什么Python2更新到Python3这么慢

机器之心在发稿时对倒计时网站的截图。

如果没有升级,会怎么样?

答:在终止日期到来后,即使用户发现了 Python2 上的灾难性安全问题,或者在 Python2 开发的软件中发现了这些问题,志愿者也不会帮助修复。如果用户需要 Python2 相关的软件协助,志愿者也不会提供帮助,并且越来越少的志愿者能够帮助到这些用户。同时,用户可能会失去使用优秀开源工具的机会,因为他们都是基于 Python3 开发的。同时,使用 Python2 的用户可能会拖慢其他使用 Python3 进行开发的人员的工作进度。

如何将 Python2 代码转为 Python3?

答:请参阅官方提供的指南。

指南地址:https://docs.python.org/3/howto/pyporting.html

如果用户基于 Python2 开发了一些软件,应该怎么做?

答:如果是从供应商那里购买的软件或软件支持,则详情可咨询他们;如果是从开发者或系统管理员那里付款获得的软件,则咨询这些开发者或管理员。如果二者均不是,则点击「Can I Use Python3?」页面查找升级到 Python3 所需要的工具。

caniusepython3 页面地址:https://pypi.org/project/caniusepython3/

是否有人员可以提供用户帮助?

答:是的。如果你付钱购买扩展支持,则与供应商联系。如果你可以付钱聘请一些人来帮助你,则可以在求职面板上发帖或直接聘请咨询人员。如果你需要志愿者提供免费帮助,则可以查看以下帮助页:https://www.python.org/about/help/。

用户直到现在才听说 Python2 升级事宜。在哪里宣布的升级通知?

答:我们在软件会议、Python 通知邮件列表、Python 官方博客、相关参考书和技术文章、社交媒体以及与出售 Python 支持的公司都讨论过 Python2 的升级事宜。

用户怎样才能确保下次及时收到升级通知呢?

答:从供应商那里购买 Python 支持,或者订阅 Python 通知邮件列表。

订阅地址:https://mail.python.org/mailman3/lists/python-announce-list.python.org/

从答疑来看,Python2 会被彻底抛弃。即使出现零日漏洞也不会有安全更新了,用户要抓紧升级,以免出现安全问题而得不到技术支持。

转移需尽早

目前,得到良好维护的开源项目大多已经转移到 Python 3 上了。你能找到的 Python2 项目源码,基本都是比较早期不再维护的项目,或是一些系统级项目(因为 Linux 和 MacOS 都自带 Python2.7)。根据 JetBrains 最新的 Python 开发者调查,大约 80% 开发者已在使用 3.5+ 版本。要知道在两年前,使用 Python 3 的比例还只有三分之一。

Python 早已经提供了 2 to 3 自动化工具,仅需一行命令就可以将 Python 2 代码转成 3。在 HackerNews 上,很多人对于 Python 2 支持的结束展开了讨论。

有网友表示:「Python 2 到 3(至少是 3.3 版本以上)是我做过最容易的过渡之一。我们可以通过库(Six)的帮助来完成转移,在几乎所有的情况下你都可以编写 2 到 3 版本兼容的代码,这意味着转移可以以每次一小部分的形式进行。至于依赖项,开发者们也已帮助升级了很多第三方模块。」

以上是为什么Python2更新到Python3这么慢的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程笔记行业资讯频道!


推荐阅读
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 资源推荐 | TensorFlow官方中文教程助力英语非母语者学习
    来源:机器之心。本文详细介绍了TensorFlow官方提供的中文版教程和指南,帮助开发者更好地理解和应用这一强大的开源机器学习平台。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 尽管深度学习带来了广泛的应用前景,其训练通常需要强大的计算资源。然而,并非所有开发者都能负担得起高性能服务器或专用硬件。本文探讨了如何在有限的硬件条件下(如ARM CPU)高效运行深度神经网络,特别是通过选择合适的工具和框架来加速模型推理。 ... [详细]
  • 解决Anaconda安装TensorFlow时遇到的TensorBoard版本问题
    本文介绍了在使用Anaconda安装TensorFlow时遇到的“Could not find a version that satisfies the requirement tensorboard”错误,并提供详细的解决方案,包括创建虚拟环境和配置PyCharm项目。 ... [详细]
  • 本文介绍了如何利用 Spring Boot 和 Groovy 构建一个灵活且可扩展的动态计算引擎,以满足钱包应用中类似余额宝功能的推广需求。我们将探讨不同的设计方案,并最终选择最适合的技术栈来实现这一目标。 ... [详细]
  • 解决TensorFlow CPU版本安装中的依赖问题
    本文记录了在安装CPU版本的TensorFlow过程中遇到的依赖问题及解决方案,特别是numpy版本不匹配和动态链接库(DLL)错误。通过详细的步骤说明和专业建议,帮助读者顺利安装并使用TensorFlow。 ... [详细]
  • 深入解析Serverless架构模式
    本文将详细介绍Serverless架构模式的核心概念、工作原理及其优势。通过对比传统架构,探讨Serverless如何简化应用开发与运维流程,并介绍当前主流的Serverless平台。 ... [详细]
  • 在Ubuntu 16.04中使用Anaconda安装TensorFlow
    本文详细介绍了如何在Ubuntu 16.04系统上通过Anaconda环境管理工具安装TensorFlow。首先,需要下载并安装Anaconda,然后配置环境变量以确保系统能够识别Anaconda命令。接着,创建一个特定的Python环境用于安装TensorFlow,并通过指定的镜像源加速安装过程。最后,通过一个简单的线性回归示例验证TensorFlow的安装是否成功。 ... [详细]
  • 使用Numpy实现无外部库依赖的双线性插值图像缩放
    本文介绍如何仅使用Numpy库,通过双线性插值方法实现图像的高效缩放,避免了对OpenCV等图像处理库的依赖。文中详细解释了算法原理,并提供了完整的代码示例。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 基于2-channelnetwork的图片相似度判别一、相关理论本篇博文主要讲解2015年CVPR的一篇关于图像相似度计算的文章:《LearningtoCompar ... [详细]
  • 本文详细介绍如何通过Anaconda 3.5.01快速安装TensorFlow,包括环境配置和具体步骤。 ... [详细]
author-avatar
手机用户2502931101
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有