2009-12-09 18 views
7

Mi módulo actualmente importa el módulo json, que solo está disponible en 2.6. Me gustaría verificar la versión de python para importar simplejson, que se puede construir para 2.5 (y es el módulo adoptado en 2.6 de todos modos). Algo como:¿Importar un módulo basado en la versión de python instalada?

if __version__ 2.5: 
    import simplejson as json 
else: 
    import json 

¿Cuál es la mejor manera de abordar esto?

Respuesta

12
try: 
    import simplejson as json 
except ImportError: 
    import json 

por supuesto, no funciona en torno a los casos en que en python-2.5 no tiene simplejson instalado, el mismo que su ejemplo.

+1

posible que desee hacer "simplejson importación como JSON", aunque ... pero sí, mucho mejor que la comprobación pitón versión – dlamotte

+0

fijo antes de ver su comentario – SilentGhost

10

Aunque el enfoque ImportError (respuesta de SilentGhost) es, sin duda la mejor para este ejemplo, cualquier persona que quiera hacer eso __version__ lo usaría algo como esto:

import sys 
if sys.version_info < (2, 6): 
    import simplejson as json 
else: 
    import json 

ser absolutamente claro, sin embargo, esto es no la "mejor manera" de hacer lo que quería ... es simplemente la forma correcta de hacer lo que estaba tratando de mostrar con __version__.

+0

al revés, simplejson está disponible en py2.5 – SilentGhost

+0

Gracias por la corrección ... Quise decir> = y no <. Siéntase libre de eliminar su comentario y el mío (o haré el mío si no puede). –

+0

si la versión es más alta que (2,6) ¡hay ** no ** simplejson disponible! – SilentGhost

Cuestiones relacionadas