dan*_*ood 5 python version python-2.7 python-3.x
是否有任何自动化方法来测试代码与 Python 2 和 3 兼容?我看过很多关于如何编写与两者兼容的代码的文档,但没有看到关于自动检查的内容。基本上是一种版本之间兼容性的 linting,而不是语法/样式。
我想过要么使用两个解释器运行测试,要么运行一个类似sixor 的工具2to3并检查是否没有输出;不幸的是,前者要求您的测试覆盖率达到 100%,而我认为后者要求您拥有有效的 Python 2 代码,并且只会发现与 Python 3 的兼容性问题。
有什么东西可以完成这个任务吗?
除了在两个版本上运行代码并发现不一致之处之外,没有“万无一失”的方法可以做到这一点。话虽如此,CPython2.7有一个-3标志(根据man页面)显示:
警告 2to3 无法轻松修复的 Python 3.x 不兼容性。
至于您拥有有效的 python3 代码并且希望将其反向移植到 python2.x 的情况 - 您实际上可能不想这样做。python3.x是未来。在一般情况下这可能是一个非常痛苦的问题。开始使用 python3.x 的很多原因是因为这样你就可以获得各种很酷的新功能。尝试重写已经依赖于很酷的新功能的代码通常会非常困难。尝试升级 python2.x 软件包以在 python3.x 上工作比反其道而行之要好得多。