Я хочу потребовать Python v3.6 + для моего сценария командной строки. У меня есть сценарий с именем quit_on_27.py
, как показано ниже:
import sys
if sys.version_info < (3, 6):
sys.exit("Please use Python 3.6+")
def hello(name:str):
print(f'Hello, {name}!')
if __name__ == '__main__':
hello('Jon')
Когда я запускаю его как сценарий, используя Python 2.7:
> python .\quit_on_27.py
File ".\quit_on_27.py", line 7
def hello(name:str):
^
SyntaxError: invalid syntax
У меня также есть такой же SyntaxError
когда я использую assert sys.version_info >= (3, 6)
, как указано в Как мне проверить, какая версия Python запускает мой скрипт? вместо условного выше.
Я бы хотел использовать ввод и f-строки и другие функции, недоступные в Python 2.7, и я хотел бы сообщить пользователям использовать более новую версию Python вместо того, чтобы просто видеть SyntaxError.
Как мне получить этот сценарий должен завершиться изящно и услужливо?
Это более конкретный c, чем Как я могу безопасно завершить сам сценарий python? , поскольку я спрашиваю, почему мое условие не работает t работает так, как я предполагал, на основе версии Python, в которой запущен скрипт.
Примечание: мой скрипт работает так, как задумано в Python 3.6.