使用小版本特性时如何写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}\"")
例如:
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}\"")