gpt4 book ai didi

Python 3 : checking version before syntactic analysis

转载 作者:行者123 更新时间:2023-11-30 23:28:17 25 4
gpt4 key购买 nike

我想在解析整个文件之前检查我的解释器是否使用 Python 3,否则会打印一条合适的错误消息。

this question ,有一个关于Python 2.4/2.5的答案。但是,当我尝试在 Python 2.7/3.3 环境中重现该解决方案时,它不起作用。

例如,运行以下文件:

try:
eval("print('', end='')")
except SyntaxError:
raise Exception("python 3 needed")

print("", end="")

导致以下错误:

File "test_version.py", line 6
print("", end="")
^
SyntaxError: invalid syntax

也就是说,eval 的计算速度不够快,无法阻止解析器到达第 6 行。

还有其他可行的技巧吗?

最佳答案

检查正在运行脚本的 Python 版本的经典方法是使用 sys.version_info 返回的元组 ( http://docs.python.org/2/library/sys.html ):

from __future__ import print_function
import sys
if sys.version_info[0] < 3:
print("This program needs Python version 3.2 or later")
sys.exit(1)

通过从 __future__ 导入来启用 print() 作为函数的原因是,如果 使用了 print 语句。

关于Python 3 : checking version before syntactic analysis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21674621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com