前言

随时 Python2 的不再维护,越来越多的项目逐渐在向 Python3 迁移。

然而,很多时间我们项目已经存在了各种依赖,因此 Python2 -> Python3 的迁移过程往往要经历一段时间,
而这一段时间内,我们需要保证我们的程序对 Python2 和 Python3 均能够兼容。

那么,针对部分 Python2 和 Python3 不兼容的 API 而言,我们如何做到程序兼容呢?

一个简单的方法是在程序中获取当前 Python 的版本,并针对不同的版本编写不同的代码。

查询 Python 的版本

Python 程序中,查询 Python 的版本非常简单,查询示例如下:

  1. import sys
  2. python_version = sys.version_info
  3. print(python_version.major) # 2
  4. print(python_version.minor) # 7
  5. print(python_version.micro) # 18

程序适配

当我们能够查询到当前的 Python 版本后,则可以根据不同的 Python 版本进行适配,以命令执行为例:

  1. import sys
  2. python_version = sys.version_info
  3. if python_version.major == 2:
  4. import commands
  5. status, output = commands.getstatusoutput("pwd")
  6. else:
  7. import subprocess
  8. status, output = subprocess.getstatusoutput("pwd")

在上面的例子中,我们针对 Python2 和 Python3 支持的不同命令执行 API 进行了相关的适配。