Mam skrypt Pythona, który używa wersji Pythona 2.6 składni (z wyjątkiem błędu jak wartości :) która wersja 2.5 narzeka. Dlatego w swoim skrypcie zawarłem pewien kod, aby sprawdzić wersję interpretera Pythona przed kontynuowaniem, aby użytkownik nie został trafiony z nieprzyjemnym błędem, jednak nie ważne gdzie umieściłem ten kod, to nie działa. Gdy trafi na dziwną składnię, generuje błąd składni, pomijając wszelkie próby sprawdzenia wersji.Sprawdzanie wersji Pythona Interpreter po wykonaniu scenariusz z nieprawidłową składnię
Wiem, że mógłbym po prostu umieścić spróbuj/oprócz bloku nad obszarem, w którym występuje błąd SyntaxError i wygenerować komunikat, ale zastanawiam się, czy istnieje bardziej "elegancki" sposób. Ponieważ nie jestem bardzo zainteresowany umieszczaniem try/except bloków na całym moim kodzie, aby rozwiązać problem z wersją. Przyjrzałem się użyciu pliku __ init__.py, ale użytkownik nie będzie importować/używać mojego kodu jako pakietu, więc nie sądzę, że trasa będzie działać, chyba że czegoś brakuje ...
Oto moja wersja kodu sprawdzanie:
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()
Tak, to załatwiło sprawę. Dzięki! – Stunner
Czy to nie jest konieczne? –
Jak to jest niepotrzebne? Cały moduł jest sprawdzany składni przed uruchomieniem pojedynczej linii kodu, więc nie jest możliwe, aby złapać SyntaxError lub przeprowadzić kontrolę wersji, zanim będzie za późno, bez skryptu opakowania. – javawizard