I think the best way is to test for functionality rather than versions. In some cases, this is trivial, not so in others.
eg:
try :
# Do stuff
except : # Features weren't found.
# Do stuff for older versions.
As long as you're specific in enough in using the try/except blocks, you can cover most of your bases.