如何确保脚本由特定版本的python执行?

时间:2019-04-28 10:25:42

标签: python linux python-3.x windows

正如问题所问,我想确保脚本是由特定版本的python执行的,例如=> 3.5.2。

如何确保执行时的脚本是由特定版本调用的。

此检查应在python脚本本身中完成。

如果解决方案与平台无关,那就更好了。

3 个答案:

答案 0 :(得分:5)

只需将其添加到脚本的开头:

import sys

assert sys.version_info >= (3, 5, 2), "Python version too low."

或者,如果您希望不使用assert

import sys

if not sys.version_info >= (3, 5, 2):
    raise EnvironmentError("Python version too low.")

或更详细些,但这实际上会告知用户他们需要什么版本:

import sys

MIN = (3, 5, 2)
if not sys.version_info >= MIN:
    raise EnvironmentError(
        "Python version too low, required at least {}".format('.'.join(str(n) for n in MIN)))
  

示例输出:

Traceback (most recent call last):
  File "main.py", line 6, in <module>
    "Python version too low, required at least {}".format('.'.join(str(n) for n in MIN)))
OSError: Python version too low, required at least 3.5.2

指定的最低版本元组可以根据需要精确。这些都是有效的:

MIN = (3,)
MIN = (3, 5)
MIN = (3, 5, 2)

答案 1 :(得分:1)

您可以通过调用sys.version_info来检查版本。这将为您提供sys.version_info(major=3, minor=6, micro=5, releaselevel='final', serial=0)格式的元组。

答案 2 :(得分:0)

尝试:

if not sys.version_info >= (3, 5, 2):
    raise EnvironmentError()

或者,更好的是,一些带有有用消息的自定义异常,