检查代码是否与Python 2和3兼容

时间:2016-11-26 04:57:39

标签: python python-2.7 python-3.x version

有没有自动测试代码兼容Python 2和3的方法?我已经看到了很多关于如何编写与两者兼容的代码的文档,但没有关于自动检查的内容。基本上是一种用于版本之间兼容性的linting而不是语法/样式。

我想过要么用两个解释器运行测试,要么运行像six2to3之类的工具,并检查没有输出;遗憾的是,前者要求您对测试有100%的覆盖率,我认为后者要求您拥有有效的Python 2代码,并且只会遇到与Python 3兼容的问题。

那里有什么可以完成这项任务吗?

2 个答案:

答案 0 :(得分:4)

除了在两个版本上运行代码并发现不一致之外,没有“万无一失”的方法。话虽如此,CPython2.7有一个-3标志(根据man页面)说:

  

警告2to3无法轻易解决的Python 3.x不兼容问题。

至于你有有效的python3代码并且你想将它反向移植到python2.x的情况 - 你可能实际上并不想这样做。 python3.x是未来。在一般情况下,这可能是一个非常痛苦的问题。很多开始使用python3.x的原因是因为你可以访问各种很酷的新功能。尝试重新编写已经依赖酷炫新功能的代码通常会非常困难。你尝试升级python2.x软件包以便在python3.x上工作,而不是反过来做事情。

答案 1 :(得分:1)

您是否可以查看2to3的输出以查看是否需要更改代码?