Python 2.6在解析整个脚本之前不会引发断言错误

问题描述

在继续之前,我正在Python中使用一个简单的代码来声明新版本。这是代码:-

import sys
assert sys.version_info >= (3,5)
print(f"New formatting style")

通过Python 2.6解释器运行该代码将返回SyntaxError,如下所示:-

  File "test.py",line 3
    print(f"New formatting style")
                                ^
SyntaxError: invalid Syntax

我期待一个AssertionError。任何解决方法?我的目标是向用户显示一条不支持Python版本的消息。

解决方法

我认为问题在于Python解释器在执行任何语句之前正在对代码进行标记。

一种解决方法是将您的工作程序代码分成不同的模块,然后在main.py中仅发出警告

例如

import sys
if sys.version_info < (3,5):
    print("Sorry requires Python 3.6 or greater")
    sys.exit(1)
else:
    import MyCoreModule
    MyCoreModule.main()