【发布时间】:2018-02-14 11:30:47
【问题描述】:
例如:
testvar = "test"
print(f"The variable contains \"{testvar}\"")
格式化字符串字面量是在python3.6中引入的
如果我使用#!/usr/bin/env python3,如果安装了旧版本的python,它将引发语法错误。
如果我使用#!/usr/bin/env python3.6,如果没有安装python3.6,它将无法工作,但更新版本是。
我如何确保我的程序在特定版本及更高版本上运行?如果使用python3,我无法检查版本,因为它甚至不会在较低版本上启动。
编辑:
我不是说如何运行它,当然你可以明确地说“用python3.6及更高版本运行它”,但是确保程序只在某个版本上运行的正确方法是什么./scriptname.py时strong>或更新?
【问题讨论】:
-
Shebangs 是字面意思。您需要事先知道您拥有并想要使用的 Python 版本。
-
如果你要打包这个,你可以在
setup.py指定一个详细的需求。我建议不要为此使用shebang。也许在你的脚本中检查sys.version_info,尽管这显然需要脚本首先解析。 -
链接问题中接受的答案在这里不是很有帮助,但the answer by Gravity Grave 显示了如何访问
sys.version_info,这是相关的,恕我直言,它有它适用于所有平台的好处,而不仅仅是 *nix。 -
语法错误发生在模块“执行”之前的编译时。因此,您无法从 shebang 中检查确切的 Python 版本。
-
非常好@glenfant。因此你也不能使用
sys.version_info,所以我重新打开了这个问题。
标签: python python-3.x posix shebang