Python 2.7 即将终止生命周期 (EOL)。您准备好了吗?

Python 2.7 即将终止生命周期 (EOL)。您准备好了吗?

我们都知道这一天会到来。早在 2014 年,当 Python 的创建者和主要作者 Guido van Rossum 宣布时,2020 年 1 月 1 日似乎还很遥远。现在,距离 Python 2.7 的落幕只有不到一年的时间了,此后核心 Python 团队将不再提供任何支持。许多常用的项目承诺在 2020 年或之前放弃对 Python 2 的支持。(以下是目前所有参与项目。)

接下来怎么办?

主要问题:Python 3 不向后兼容。

总的来说,这是一件好事。Python 3 纠正了该语言中一些基本的设计缺陷和冗余,这应该会带来更简单和优雅的代码。但这也意味着 Python 2.x 代码不会自动与 Python 3 兼容。

何时以及如何进行迁移仅仅因为 2.7 在 2020 年之后将不再维护,并不意味着您的应用程序或库会突然停止工作。如果您的项目稳定可靠,并且没有任何安全问题,为什么要修复没有损坏的东西呢?Anaconda 可以轻松维护您的 Python 2.7 环境,以便您将来可以继续运行该软件。您甚至可以在 P2 和 P3 中拥有多个项目,并在不同的 .conda 环境中轻松管理它们。

迁移的原因

  • 您正在从头开始构建一个新项目。
  • 您的遗留项目严重依赖于 Python 3 中不同的功能
    • 例如,Python 3 更改了字符串的处理方式,使 Unicode 字符串成为默认值。这为重音字符、外语等提供了更好的支持。如果您的应用程序依赖于对国际字符的强大处理能力,您真的需要认真考虑仅使用 Python 3。维护在两个版本上都能工作的代码将更加困难。
  • 您的项目依赖于流行的软件包(如 Scikit-learn),这些软件包已宣布计划放弃对 Python 2 的支持。
  • 您担心安全漏洞。

那么,您的 Python 3 迁移会有多痛苦呢?

不必那么糟糕!最流行的库已经迁移。如果您有大量的代码库需要迁移,请调查您的代码中 P2 和 3 之间的主要语言差异。这将帮助您了解您将面临的复杂性。Six 提供了实用程序函数,用于消除 Python 2 和 3 之间的差异,并且它们有一个方便的兼容性库来帮助您了解这些差异。

如果您当前正在开发需要在 Python 2 和 Python 3 中运行的代码,则应使用:“`from __future__ import print_function, absolute_import, division“`

这会强制您编写对 Python 3 友好的代码,至少在 `print`、`import` 和 division 语句方面是这样。您越早开始在所有代码中实践这一点,以后当您必须更刻意地支持 Python 3 时就会越容易。

我们随时为您提供帮助。

如果您对代码差异、使用 .conda 维护您的 2.7 实例或与 Python 3 迁移相关的任何其他问题有疑问,请随时与我们联系。

与专家交谈

与我们的专家之一交谈,为您的 AI 之旅寻找解决方案。

与专家交谈