哪个2to3修复程序输出有效的Python 2代码?

哪个2to3修复程序输出有效的Python 2代码?,python,python-3.x,python-2to3,Python,Python 3.x,Python 2to3,2to3是一个Python程序,它读取Python2.x源代码并应用一系列修复程序将其转换为有效的Python3.x代码 以列出的四十位修复者为例。根据设计,它们都输出有效的Python3代码。哪个输出有效的Python 2代码 例如,“将旧的不相等语法转换为!=”的修复程序NE具有此属性,因为=是有效的Python2和Python3 而“将\uuu NONZERO\uuuu重命名为\uuuu bool\uuuu”的修饰符NONZERO没有该属性,因为Python 2.7中没有函数\uuuuu

2to3是一个Python程序,它读取Python2.x源代码并应用一系列修复程序将其转换为有效的Python3.x代码

以列出的四十位修复者为例。根据设计,它们都输出有效的Python3代码。哪个输出有效的Python 2代码

例如,“将旧的不相等语法
转换为
!=
”的修复程序NE具有此属性,因为
=
是有效的Python2和Python3

而“将
\uuu NONZERO\uuuu
重命名为
\uuuu bool\uuuu
”的修饰符NONZERO没有该属性,因为Python 2.7中没有函数
\uuuuu bool\uu

来自:

不建议尝试编写运行不变的源代码 在Python 2.6和3.0下;你必须使用一个非常扭曲的 编码风格,例如避免打印语句、元类等 更多如果您维护的库需要同时支持这两种功能 Python2.6和Python3.0,最好的方法是修改上面的步骤3 通过编辑2.6版本的源代码并运行2to3 再次翻译,而不是编辑源代码的3.0版本 代码

这是一个非常好的链接,因为它还列出了3.0中的大部分主要新特性和更改

至于你的问题,我能找到的最接近你要求的东西是,它不是一个转换器或修复程序,而是一个兼容性库,它为你处理许多扭曲的编码。也就是说,我不知道它工作得有多好,无论如何,它都需要对现有代码进行大量更改才能利用它

主要问题是Python3.x改变了语法的许多基本方面,如果没有某种兼容层,同一代码几乎不可能在3.x和2.x上以同样的方式工作。Python 2的字符串与Python 3的字符串不同。整数也是如此,Python 3甚至不再具有long类型(Python 3 int是longs过去的类型,而旧的Python 2 int已经不存在了)。许多内置函数和属性已被重命名或修改,大多数语法已被更改或清理,完全破坏了向后兼容性


解释了一些关于2to3及其作用的内容,并且列出的大量语法更改有望足以解释为什么生成的代码不再适用于Python2.x

这将是一个“3to2断路器”。“to3”对“到python2”不感兴趣。标题应该改为直接任务,例如:如何自动将Python3后传/修复为Python2?或者如何将Python2更新为Python3,使所需的更改/修复最少?谢谢。我的项目用了六个。那些发行说明是妄想。