如何确保脚本是由特定版本的python执行的? [重复]

问题描述 投票:1回答:3

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

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

这个检查应该在python脚本本身完成。

如果解决方案与平台无关,那可能会更好。

python linux python-3.x windows
3个回答
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
投票

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


0
投票

尝试:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.