Проверка версии интерпретатора Python при выполнении сценария с недопустимым синтаксисом

У меня есть сценарий Python, в котором используется синтаксис Python версии 2.6 (кроме ошибки как значение : ), на который жалуется версия 2.5. Поэтому в свой сценарий я включил некоторый код для проверки версии интерпретатора Python перед тем, как продолжить, чтобы пользователь не столкнулся с неприятной ошибкой, однако, где бы я ни разместил этот код, он не работает. Как только он обнаруживает странный синтаксис, он выдает синтаксическую ошибку, игнорируя любые мои попытки проверки версии.

Я знаю, что могу просто поместить блок try / except в область, в которой возникает SyntaxError, и сгенерировать там сообщение, но мне интересно, есть ли более «элегантный» способ. Поскольку я не очень заинтересован в размещении блоков try / except по всему моему коду для решения проблемы с версией. Я изучал возможность использования файла __ init__.py, но пользователь не будет импортировать / использовать мой код в качестве пакета, поэтому я не думаю, что этот маршрут будет работать, если только я чего-то не упустил ...

Здесь это мой код проверки версии:

import sys
def isPythonVersion(version):
    if float(sys.version[:3]) >= version:
        return True
    else:
        return False

if not isPythonVersion(2.6):
    print "You are running Python version", sys.version[:3], ", version 2.6 or 2.7 is required. Please update. Aborting..."
    exit()
13
задан tshepang 9 May 2014 в 17:16
поделиться