todas para paquetes modulos lista librerias libreria las importar descargar clases python migration module code-migration

para - La mejor forma de importar módulos de Python específicos de la versión



modulos y paquetes python (2)

Probablemente diría que el segundo sería preferible. A veces, puedes instalar un módulo de una versión más nueva de python en una versión anterior. Por ejemplo, wsgiref viene con Python 2.5, pero no es del todo raro que se instale en versiones anteriores (creo que funcionará con Python 2.3).

¿Qué método tiene más sentido para importar un módulo en python que sea específico de la versión? Mi caso de uso es que estoy escribiendo código que se implementará en un entorno de python 2.3 y en pocos meses se actualizará a python 2.5. Esta:

if sys.version_info[:2] >= (2, 5): from string import Template else: from our.compat.string import Template

o esto

try: from string import Template except ImportError: from our.compat.string import Template

Sé que cualquiera de los casos es igualmente correcto y funciona correctamente, pero ¿cuál es preferible?


Siempre de la segunda manera: nunca se sabe qué instalaciones diferentes de Python habrá instalado. Template es un caso específico en el que importa menos, pero cuando pruebas la capacidad en lugar del control de versiones, siempre eres más robusto.

Así es como hago que Testoob soporte Python 2.2 - 2.6: Intento importar un módulo de diferentes maneras hasta que funcione. También es relevante para bibliotecas de terceros.

Este es un caso extremo: admite diferentes opciones para que aparezca ElementTree:

try: import elementtree.ElementTree as ET except ImportError: try: import cElementTree as ET except ImportError: try: import lxml.etree as ET except ImportError: import xml.etree.ElementTree as ET # Python 2.5 and up