如果我有一个Python脚本,它至少需要 Python的版本,正确的失败方式是什么 何时使用早期版本的Python启动脚本?
如何尽早获得控制权以发出错误消息 然后离开?
例如,我有一个程序使用ternery运算符(2.5中的新增)和“with”块 (2.6新增)。我写了一个简单的翻译版本 checker例程,这是脚本要做的第一件事 呼叫。。。只是没走那么远。取而代之的是 在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
当在2.4下运行时,我想要这个结果
$ ~/bin/python2.4 tern.py
must use python 2.5 or greater
而不是这个结果:
$ ~/bin/python2.4 tern.py
File "tern.py", line 5
x = 1 if True else 2
^
SyntaxError: invalid syntax
(为同事提供渠道。)
试试看
应该给你一个类似“2.3.1”的字符串。如果这不完全是您想要的,那么可以通过“平台”内置提供一组丰富的数据。你想要的东西应该在里面的某个地方。
您可以使用
eval
进行测试:另外,
with
在Python 2.5中可用,只需添加from __future__ import with_statement
。编辑:要尽早获得控件,可以将其拆分为不同的
.py
文件,并在导入之前检查主文件中的兼容性(例如,在包中的__init__.py
):在程序周围有一个执行以下操作的包装器。
如果您计划遇到使用2.0之前版本的Python解释器的人,但是您还有一些正则表达式要做,那么您也可以考虑使用
sys.version()
。也许有更优雅的方法来做到这一点。
相关问题 更多 >
编程相关推荐