python future-解决Python2和Python3之间兼容性问题的python库
快速入门指南
您现在可以用future来帮助将代码从Python 2移植到Python 3,并且仍然可以在Python 2上运行。
如果您已经有了Python 3代码,则可以使用它future来提供Python 2兼容性,而几乎不需要额外的工作。
安装
要安装最新的稳定版本,请输入:
pip install future
您也可以通过网盘下载python future的源代码文件手动安装。
在Python 2.6上,对于一小部分代码,需要三个包含Python 2.7+中标准库模块的反向移植的软件包:
pip install importlib # for future.standard_library.import_ function onlypip install unittest2 # to run the test suitepip install argparse # for the backported http.server module from Py3.3
除非这些功能在Python 2.6(仅)上使用,否则future不存在依赖项。
如果您是从头开始编写代码
最简单的方法是使用这些行来启动每个新模块:
from __future__ import (absolute_import, division, print_function, unicode_literals)from builtins import *
然后编写标准的Python 3代码。该future软件包将提供在Python 2.6、2.7和3.3+上运行代码的支持。
有关显式导入形式,请参见显式导入。
有关更多详细信息,请参见其他信息。
有关备忘单,请参阅备忘单:编写Python 2-3兼容代码。
转换现有的Python 3代码
要从Python 3代码提供与Python 2的向后兼容性,可以使用该pasteurize脚本。这会将这些行添加到每个模块的顶部:
并将几种仅Python 3的构造(例如仅关键字参数)转换为与Py3和Py2都兼容的形式。剩下的大多数Python 3代码应该只适用于Python 2。
转换现有的Python 2代码
该futurize脚本通过所有适当的修复程序传递Python 2代码以将其转换为有效的Python 3代码,然后添加__future__并 future打包导入以重新启用与Python 2的兼容性。
例如,运行futurize打开以下Python 2代码:
这段代码可同时在Py2和Py3上运行:
要写出建议的所有Python文件更改,请futurize使用-w标记。
对于复杂的项目,最好将移植分为两个阶段。第1阶段用于“安全”更改,这些更改可使代码现代化,但又不破坏Python 2.6兼容性或在future程序包上引入依赖关系。第二阶段是完成该过程。