I tienen una secuencia de comandos Python que utiliza la versión Python 2.6 sintaxis (Excepto error como valor :) la versión 2.5 se queja de. Por lo tanto, en mi secuencia de comandos he incluido un código para verificar la versión del intérprete de Python antes de continuar para que el usuario no reciba un error desagradable, sin embargo, no importa dónde coloque ese código, no funciona. Una vez que golpea la sintaxis extraña, arroja el error de sintaxis, sin tener en cuenta los intentos de comprobación de la versión.comprobación de versión de Python intérprete Tras la ejecución de escritura con el sintaxis no válida
Sé que podría simplemente colocar un bloque try/except sobre el área donde se produce SyntaxError y generar el mensaje allí, pero me pregunto si hay una forma más "elegante". Como no estoy muy interesado en colocar bloques try/except en todo mi código para abordar el problema de la versión. Intenté usar un archivo __ init__.py, pero el usuario no importará/usará mi código como un paquete, así que no creo que esa ruta funcione, a menos que me falta algo ...
aquí está mi versión del código de verificación:
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í, esto hizo el truco. ¡Gracias! – Stunner
¿No es esto innecesario? –
¿Cómo es innecesario? Todo el módulo es sintaxis comprobado antes de ejecutar una sola línea de código, por lo que no es posible detectar SyntaxError o realizar comprobaciones de versión antes de que sea demasiado tarde sin un script de envoltura. – javawizard