我目前的要求是在Python 2.4.3
中编写一个与RHEL 5捆绑在一起的脚本。但是几年之后,5年后,服务器可能升级到RHEL 8或9,Python 3
附带。所以我应该编写兼容两个版本的代码。现在我的脚本包含基本操作,例如创建目录,解压缩文件,文件操作,XML文件读取(我现在正在使用minidom
)和一些散列。
现在我发现名为python-modernize
的工具可以完成2to3
之上构建的工作。我搜索了该工具,但我得到了一个tar.gz文件。它不包含python-modernize文件,因为它们在其用法中说明了它。但我发现的只是一个setup.py
文件。我是Python新手,我所知道的是pip
完成了一些事情。但我也读过,使用pip对于Python 2.4.3来说是一项艰巨的工作。
请告诉我如何完成工作。
我还提到了this,但找不到如何使用该工具。
如果有更好的选择,请告诉我。
答案 0 :(得分:1)
使用Benjamin Peterson的six
图书馆。
它专为此用例而设计。 它允许您通过从六个库中导入不同于2到3的内容来拥有支持Python 2和Python 3的单个代码库。
只需简单地导入并使用它的定义:
import six
示例:强>
from six import u, b
以上是经典的,其中Python 3+对Unicode字符串和字节的工作方式进行了更严格的修改。
Six是Python 2和3兼容库。它提供了实用性 用于平滑Python之间差异的函数 目标是编写兼容的Python代码 两个Python版本。有关更多信息,请参阅文档 提供的是什么。
Six支持自2.5以来的每个Python版本。它仅包含在内 一个Python文件,因此可以轻松地复制到您的项目中。 (该 必须保留版权和许可声明。)
更新:抱歉,我错过了那里的Python<=2.5
要求;但老实说,我认为使用六是你最好的选择。你必须说服那些你 使用最少Python 2.5的权力。
更新#2:我最强烈的建议是将代码升级到Python 2.7。不要落在后面,否则你将永远落后于球!
更新#3:根据以上非常有用的评论;我同意。只需使用你现在拥有的东西。 5年确实是一段很长的时间,到那时也可能没有相同的限制!