使用小版本特性时如何写shebang

How to write shebang when using features of minor versions

例如:

testvar = "test"
print(f"The variable contains \"{testvar}\"")

在 python3.6

中引入了格式化字符串文字

如果我使用 #!/usr/bin/env python3,如果安装了旧版本的 python,它将抛出语法错误。
如果我使用 #!/usr/bin/env python3.6,如果未安装 python3.6,但安装了较新的版本,它将无法工作。

如何确保我的程序 运行 在特定版本及更高版本上?如果使用 python3,我无法检查版本,因为它甚至无法在较低版本上启动。

编辑:

我不是说如何运行,当然你可以明确地说"run this with python3.6 and up",但确保程序只有运行的正确方法是什么使用特定版本 或更高版本 当使用 ./scriptname.py?

您需要将脚本分成两个模块以避免语法错误:第一个是检查 Python 版本的入口点,如果 python 版本不是工作。

# main.py: entry point
import sys

if sys.version_info > (3, 6):
    import app
    app.do_the_job()
else:
    print("You need Python 3.6 or newer. Sorry")
    sys.exit(1)

另一个:

# app.py
...
def do_the_job():
    ...
    testvar = "test"
    ...
    print(f"The variable contains \"{testvar}\"")