Ho uno script Python che utilizza la versione di Python 2.6 sintassi (tranne errore come valore :) che la versione 2.5 si lamenta. Quindi nel mio script ho incluso del codice per verificare la versione dell'interprete Python prima di procedere in modo che l'utente non venga colpito da un brutto errore, tuttavia, indipendentemente da dove posizioni quel codice, non funziona. Quando raggiunge la strana sintassi, genera l'errore di sintassi, ignorando qualsiasi tentativo di controllo della versione.Controllo della versione di Python Interpreter al momento dell'esecuzione di script con sintassi non valida
So che potrei semplicemente effettuare un tentativo/eccetto il blocco sull'area in cui si verifica l'errore SyntaxError e generare il messaggio ma mi chiedo se esiste un modo più "elegante". Poiché non sono molto entusiasta di inserire try/except blocks in tutto il mio codice per risolvere il problema della versione. Ho esaminato l'utilizzo di un file __ init__.py, ma l'utente non sta importando/utilizzando il mio codice come pacchetto, quindi non penso che la route funzionerà, a meno che manchi qualcosa ...
qui è la mia versione codice di controllo:
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()
Sì, questo ha fatto il trucco. Grazie! – Stunner
Non è necessario? –
Come è inutile? L'intero modulo viene verificato con la sintassi prima dell'esecuzione di una singola riga di codice, quindi non è possibile intercettare SyntaxError o eseguire controlli di versione prima che sia troppo tardi senza uno script di wrapper. – javawizard