I don't think you're going to find one. Your best approach instead is to use the #! syntax to indicate what Python you want to use and use 2to3 as you're ready on each one. (If you're on Windows, look into Python launcher to make coexistence a little easier.)
I have one module I wrote that needs to work with both 2 and 3; and I have code at the top that looks like this:
import sys
PYTHON3 = sys.version_info.major == 3
PYTHON2 = sys.version_info.major == 2
if PYTHON2:
import StringIO
stringio = StringIO.StringIO
bytesio = StringIO.StringIO # In Python2, stringIO takes strings of binary data
import urllib2
URL_open = urllib2.urlopen
HTTPError = urllib2.HTTPError
if PYTHON3:
import io
stringio = io.StringIO
bytesio = io.BytesIO # In Python3, use BytesIO for binary data
import urllib.request
URL_open = urllib.request.urlopen
import urllib.error
HTTPError = urllib.error.HTTPError
and scattered throughout things like:
if PYTHON2:
f = stringio(self.XMLData)
if PYTHON3:
f = bytesio(self.XMLData.encode(encoding="utf-8"))
It's not like there's way of expressing a line that will work in both systems. You need a lot of patching like this. It's really not worth it unless you have a use case (like this) where there's some reason you must support both Python2 and Python3 in one module.
My use case was relatively straightforward. The similar question you refer to points to the Dive Into Python "Porting Code to Python 3 with 2to3" chapter, which shows how much stuff is different, much of which is incompatibly different, requiring a lot of conditional coding as above. I wouldn't recommend it.