将 Python 2 代码迁移到 Python 3

2022/11/1 23:24:59

本文主要是介绍将 Python 2 代码迁移到 Python 3,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Python 3 是 Python 的未来,但 Python 2 仍处于活跃使用阶段,最好让您的项目在两个主要版本的Python 上都可用。本指南旨在帮助您了解如何最好地同时支持 Python 2 和 3。

简要说明

要使您的项目与单源 Python 2/3 兼容,基本步骤是:

  1. 只担心支持 Python 2.7

  2. 确保您有良好的测试覆盖率(coverage.py可以提供帮助;python -m pip install coverage

  3. 了解Python 2 和 3之间的区别

  4. 使用Futurize(或Modernize)更新您的代码(例如python -m pip install future

  5. 使用Pylint帮助确保您的 Python 3 支持不会退步 ( python -m pip install pylint)

  6. 使用caniusepython3找出哪些依赖项阻碍了您使用 Python 3 ( python -m pip install caniusepython3)

  7. 一旦您的依赖项不再阻碍您,请使用持续集成来确保您与 Python 2 和 3 保持兼容(tox可以帮助针对多个版本的 Python 进行测试;python -m pip install tox

  8. 考虑使用可选的静态类型检查来确保您的类型使用在 Python 2 和 Python 3 中都有效(例如,使用mypy在 Python 2 和 Python 3 下检查您的类型;python -m pip install mypy)。

注解

注意: usingpython -m pip install保证pip您调用的是为当前使用的 Python 安装的,无论是系统范围的pip还是安装在虚拟环境中的。

详情

同时支持 Python 2 和 3 的一个关键点是您可以从今天开始!即使您的依赖项不支持 Python 3,但这并不意味着您现在不能对代码进行现代化以支持 Python 3。支持 Python 3 所需的大多数更改会导致使用更新的实践来更清晰的代码,即使在 Python 2 代码中也是如此。

另一个关键点是,现代化您的 Python 2 代码以支持 Python 3 在很大程度上是自动化的。虽然由于 Python 3 明确了文本数据与二进制数据,您可能不得不做出一些 API 决策,但现在主要为您完成了较低级别的工作,因此至少可以立即从自动更改中受益。

在阅读有关移植代码以同时支持 Python 2 和 3 的详细信息时,请牢记这些关键点。

删除对Python 2.6及更早版本的支持

虽然您可以让 Python 2.5 与 Python 3 一起工作,但如果您只需要与 Python 2.7 一起工作,那就容易多了。如果放弃 Python 2.5 不是一个选项,那么这六个项目可以帮助您同时支持 Python 2.5 和 3 ( python -m pip install six)。但是请注意,几乎所有列在本 HOWTO 中的项目都不会提供给您。

如果您能够跳过 Python 2.5 和更早版本,那么对代码进行所需的更改应该继续看起来和感觉像惯用的 Python 代码。在最坏的情况下,您将不得不在某些情况下使用函数而不是方法,或者必须导入函数而不是使用内置函数,但否则整体转换对您来说不应该感到陌生。

但是您应该只支持 Python 2.7。Python 2.6 不再免费支持,因此没有收到错误修正。这意味着将不得不解决您在 Python 2.6 中遇到的任何问题。本 HOWTO 中还提到了一些不支持 Python 2.6 的工具(例如Pylint),随着时间的推移,这将变得越来越普遍。如果你只支持你必须支持的 Python 版本,这对你来说会更容易。



这篇关于将 Python 2 代码迁移到 Python 3的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程