热门标签 | 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这么慢的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程笔记行业资讯频道!


推荐阅读
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • PyThon_Swift 势必取代 Python?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Swift势必取代Python?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 投融资周报 | Circle 达成 4 亿美元融资协议,唯一艺术平台 A 轮融资超千万美元 ... [详细]
  • 理工科男女不容错过的神奇资源网站
    十一长假即将结束,你的假期学习计划进展如何?无论你是在家中、思念家乡,还是身处异国他乡,理工科学生都不容错过一些神奇的资源网站。这些网站提供了丰富的学术资料、实验数据和技术文档,能够帮助你在假期中高效学习和提升专业技能。 ... [详细]
  • 当前,众多初创企业对全栈工程师的需求日益增长,但市场中却存在大量所谓的“伪全栈工程师”,尤其是那些仅掌握了Node.js技能的前端开发人员。本文旨在深入探讨全栈工程师在现代技术生态中的真实角色与价值,澄清对这一角色的误解,并强调真正的全栈工程师应具备全面的技术栈和综合解决问题的能力。 ... [详细]
  • 本文详细介绍了在Windows操作系统上使用Python 3.8.5编译支持CUDA 11和cuDNN 8.0.2的TensorFlow 2.3的步骤。文章不仅提供了详细的编译指南,还分享了编译后的文件下载链接,方便用户快速获取所需资源。此外,文中还涵盖了常见的编译问题及其解决方案,确保用户能够顺利进行编译和安装。 ... [详细]
  • Python2.7是一款非常好用的编程语言,此版本与相比于3.x版本相比更加成熟一些,支持的第三方类库、相关资料也是最多的,非常适合于Python开发人员进行使用,尤其是新入门的朋 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • R语言中向量(Vector)数据类型的元素索引与访问:利用中括号[]和赋值操作符在向量末尾追加数据以扩展其长度
    在R语言中,向量(Vector)数据类型的元素可以通过中括号 `[]` 进行索引和访问。此外,利用中括号和赋值操作符,可以在向量的末尾追加新数据,从而动态地扩展向量的长度。这种方法不仅简洁高效,还能灵活地管理向量中的数据。 ... [详细]
  • 谷歌工程师:TensorFlow已重获新生;网友:我还是用PyTorch
    乾明发自凹非寺量子位报道|公众号QbitAI道友留步!TensorFlow已重获新生。在“PyTorch真香”的潮流中,有人站出来为TensorFlow说话了。这次来自谷歌的工程师 ... [详细]
  • TensorFlow基础知识深化讲解
    批标准化批标准化(batchnormalization,BN)是为了克服神经网络层数加深导致难以训练而诞生的。深度神经网络随着深度加深,收 ... [详细]
  • 在Python代码中指定GPUimportosos.environ[CUDA_VISIBLE_DEVICES]0设置定量的GPU使用量:configtf.ConfigProto()config.gpu_opt ... [详细]
  • 这篇文章给大家分享的是有关Python2爬虫中URLError与HTTPError是什么意思的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来 ... [详细]
  • python扩展实现方法--python与c混和编程编写Python扩展(ExtendingPythonwithCorC++)https:docs.python.org2.7ext ... [详细]
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社区 版权所有