如果可以进行语法转换,则将有效的3.x语法重构为有效的2.x语法

3to2的Python项目详细描述


下载

2.7和3.x版本(我测试的最后一个版本是3.4.3):https://pypi.python.org/pypi/3to2

摘要

lib3to2是一组修复程序,用于后台移植为 python version 3.x转换为python version 2.x。 2.7分支的最新版本,因为这是python中的最后一个版本 2.x分支。但是,为了使代码与 python版本回到2.5版后,错误报告仍然存在 欢迎使用仅在2.6+中提供的python特性 lib3to2。

这个项目是2009年谷歌代码之夏(Google Summer of code,TM)项目的产物。

状态

由于主题的性质,3to2并不完美,所以请检查所有 手动输出。3to2完成了大部分工作,但是有一些代码 由于某种原因,无法转换为与Python2等效的版本。

3to2将生成有效的python 2代码,或者警告为什么没有。 任何其他行为都是错误,应该报告。

Lib3To2的修复程序已经单独测试过了,但是还没有测试 这是在多个修复程序之间的交互上完成的,因此 未来很可能就在那里。

意图

lib3to2旨在成为开发代码过程中的一个工具,即 向后兼容Python3和Python2。它不打算成为 直接反向移植Python3代码的完整解决方案,尽管它通常可以 用于此目的,无问题。足够大的包装应该 在整个过程中使用lib3to2开发以避免向后- 不兼容的代码不会变得太嵌入。

Python3的一些特性在Python2中没有等价物,并且 尽管lib3to2试图修复尽可能多的这些问题,但是有些特性是 无法控制。对于不易察觉的特征尤其如此 通过它们单独的语法和非常微妙的特性,确保代码 使用lib3to2是经过彻底测试的。

用法

运行“./3to2”转换stdin(“-”),文件或目录如下 论据。默认情况下,该工具在 标准输出和关于标准错误的“更改内容”摘要,但是 “-w”选项可用于回写转换后的文件,创建 “.bak”-命名备份文件。

如果您是root用户,也可以使用“../setup.py build”和 “/setup.py install”(“make install”为您执行此操作)。

3to2的这个分支必须使用python 3运行。

要在本地安装(用于以非特权用户身份运行测试),请 脚本假设您使用的是python3.1。如果没有,请相应地修改。

与lib2to3的关系

Lib3To2的一些固定剂是直接从其2To3复制粘贴的 等价,具有模式元素和相应的转换 换了地方。大多数为此程序编写的修复程序 2to3修复程序从2to3修复程序的克隆启动,然后将该修复程序修改为 反向工作。我不要求这些修理工的原著,但我要求 声称他们将为3to2工作,与他们如何为2to3工作无关。 此外,这个程序依赖于lib2to3来实现修复程序、测试用例, 重构和语法。Lib2To3的一些部分被改性为 支持lib3to2调用的泛型。

您应该使用python沙箱中最新版本的lib2to3,而不是 而不是python附带的版本(如果有的话)。为了方便起见, python包索引中的“two2tree”是lib2to3的最新版本 重命名以避免冲突。若要使用此包,请替换 “图书馆安装后,3to2源文件中有“two2three”和“two2three” PYPI的“Two2Three”。根据开发人员的心情, 3to2可能已经进行了此更改。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
CentOS上的java Spring Boot简易应用程序需要很长时间才能启动   java如何检查字符串值是否等于null?   收集器中的java映射值。分组方式()   java需要支持Azure AD B2C webapp集成   java如何加入线程以停止它?   java如何使用意图传递类的对象?   java如何在战争环境中发现CDI生产者?   多模块项目中java奇怪的编译器行为   java如何在web应用程序中管理密码?   java从http服务器、filehandler中删除冗余代码   java使用反射来获取泛型类的字段   java Spring MVC/Hibernate/MySQL 400错误请求错误   给定正整数a的java幂为3   在Java中将元素拆分为不同数量的列表?   java展开折叠窗格