Which method makes the most sense for importing a module in python that is version specific? My use case is that I\'m writing code that will be deployed into a python 2.3 enviro
Always the second way - you never know what different Python installations will have installed. Template
is a specific case where it matters less, but when you test for the capability instead of the versioning you're always more robust.
That's how I make Testoob support Python 2.2 - 2.6: I try to import a module in different ways until it works. It's also relevant to 3rd-party libraries.
Here's an extreme case - supporting different options for ElementTree to appear:
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