在执行之前检查python版本是不是与脚本兼容[重复]
Posted
技术标签:
【中文标题】在执行之前检查python版本是不是与脚本兼容[重复]【英文标题】:Check if python version is compatible with script before executing [duplicate]在执行之前检查python版本是否与脚本兼容[重复] 【发布时间】:2021-04-11 06:41:25 【问题描述】:我有一个使用 Python 2.7 编写的 Python 脚本。然而,它将被部署到许多不同的服务器上,其中一些正在运行 Python 2.4。在这种情况下,我很高兴脚本根本不在运行 Python 2.4 的服务器上运行。有没有办法可以在我的 Python 脚本中执行此操作,或者最好在脚本周围放置一个包装器?
我试过这样做:
if sys.version_info[0] < 2.7:
raise Exception("Python 2.7 or a more recent version is required.")
但是,由于 Python 在运行之前编译代码,因此在编译期间遇到在 2.4 中不起作用的部分脚本时会失败。
【问题讨论】:
不部署到不支持 Python 2.7 的服务器怎么办? 这能回答你的问题吗? How do I check what version of Python is running my script? 您的服务器急需升级。非常强烈的建议升级到 Python 3.6+。 Python 2.7 达到了EOL one year ago,而 Python 2.4 .. 好吧,很久以前了。 【参考方案1】:sys.version_info[0]
仅是主要版本。因此,对于所有 python 2.x 版本,它将是 2
。您正在寻找sys.version_info[1]
,带有次要版本:
# check for python 2
if sys.version_info[0] != 2:
raise Exception("Please use Python 2")
# check for 2.7+
if sys.version_info[1] < 7:
raise Exception("Please use Python 2.7+")
或者,对于更具描述性的命名,您可以使用sys.version_info.major
代替sys.version_info[0]
和sys.version_info.minor
代替sys.version_info[1]
。
此外,请确保将其添加到脚本顶部附近,以便在命中该行并引发异常之前不存在不兼容性。
如果您的代码使用不兼容的语法,那么您应该将非版本检查代码放在一个单独的文件中的 main 函数中,然后在检查后将其导入,这样 Python 就不会尝试解析它。
【讨论】:
以上是关于在执行之前检查python版本是不是与脚本兼容[重复]的主要内容,如果未能解决你的问题,请参考以下文章
在插入之前检查 DataGridview 中的值是不是与数据库表/模式兼容