如何编写Python代码以正确要求最低Python版本?
我想知道有没有办法要求使用最低版本的Python。
我有几个Python模块需要Python 2.6,因为它们使用了新的异常处理方式(就是用到as
这个关键词)。
看起来即使我在脚本开始的时候检查了Python的版本,代码还是无法运行,因为解释器在模块内部会出错,给出一个难看的系统错误,而不是告诉用户要使用更新的Python版本。
9 个回答
45
在你的脚本里,最好不要使用任何Python 2.6的功能。此外,在导入任何需要新版本Python的模块之前,你必须先检查你的Python版本。
比如,你可以这样开始你的脚本:
#!/usr/bin/env python
import sys
if sys.version_info[0] != 2 or sys.version_info[1] < 6:
print("This script requires Python version 2.6")
sys.exit(1)
# rest of script, including real initial imports, here
61
你可以利用Python在比较元组时会自动处理的这个特点:
#!/usr/bin/python
import sys
MIN_PYTHON = (2, 6)
if sys.version_info < MIN_PYTHON:
sys.exit("Python %s.%s or later is required.\n" % MIN_PYTHON)
12
import sys
if sys.hexversion < 0x02060000:
sys.exit("Python 2.6 or newer is required to run this program.")
import module_requiring_26
这段话的有趣之处在于,它可以放在__init__
文件或者模块里面。