I've read the status page for py3k and stumbled upon the cleanup tasks, especially the version checks. I agree that calling sys.version_info is not a smart choice.
Why not use a new variable in __init__.py, something like a boolean __is_py3k__. Every module which needs a choice between py2.x and 3.x can simply:
from matplotlib import __is_py3k__