使用较新 python 版本的功能,例如 f-string debugging feature: f'{some_var=}'
,结果为SyntaxError
.
假设我有一个我想提供的 python 脚本,并且用户使用旧的 python 版本执行所述脚本,他只会得到这个错误。相反,我想为他提供一些有意义的文字,例如"Please update python to version >=3.7"
我可以用一个main
文件来解决它,它检查版本然后导入我的脚本。
有没有办法实现这一点,同时仍然只有一个文件脚本?
可能的方法:
检查sys.version
或platfrom.python_version_tuple
-> 不可能,SyntaxError
妨碍,因为 python 解析整个文件
使用 eval 来确定SyntaxError
: -> 出于同样的原因不可能
try: a = "hello" eval("f'{a=}'") except SyntaxError: raise ImportError('Update your Python version!!!!')
我可以以某种方式欺骗 Python 不在语法上检查整个文件吗?
(我可以将整个文件“打包”成一个字符串,检查版本,然后检查eval
字符串,但这不是一个非常干净的解决方案,而且对开发来说很糟糕)
编辑:这个问题不是关于“如何检查 python 版本”。相反,它是关于“如何在我收到新功能之前检查 python 版本SyntaxError
。
拉风的咖菲猫
相关分类