相关疑难解决方法(0)

如何在使用新语言功能的程序中检查Python版本?

如果我的Python脚本至少需要特定版本的Python,那么在使用早期版本的Python启动脚本时,正确失败的正确方法是什么?

如何及早获得控制权以发出错误消息并退出?

例如,我有一个使用ternery操作符(2.5中的新增内容)和"with"块(2.6中的新增内容)的程序.我写了一个简单的小解释器 - 版本检查器例程,这是脚本会调用的第一件事......除了它没有那么远.相反,在我的例程被调用之前,脚本在python编译期间失败.因此,脚本的用户会看到一些非常模糊的synax错误回溯 - 这几乎需要专家推断它只是运行错误版本的Python的情况.

我知道如何检查Python的版本.问题是某些语法在旧版本的Python中是非法的.考虑这个程序:

import sys
if sys.version_info < (2, 4):
    raise "must use python 2.5 or greater"
else:
    # syntax error in 2.4, ok in 2.5
    x = 1 if True else 2
    print x
Run Code Online (Sandbox Code Playgroud)

在2.4下运行时,我想要这个结果

$ ~/bin/python2.4 tern.py 
must use python 2.5 or greater
Run Code Online (Sandbox Code Playgroud)

而不是这个结果:

$ ~/bin/python2.4 tern.py 
  File "tern.py", line 5
    x = 1 if True else 2
           ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

(引导同事.)

python version

235
推荐指数
8
解决办法
25万
查看次数

标签 统计

python ×1

version ×1