I'm not sure why this guy is doing it the hard way.
Because, as mentioned several times in this discussion, if you give a python3 file to a python2 interpreter, you will get a SyntaxError even before the first line of the script runs. This is a way o ensuring the correct python version is used and to display a clear error message next to it.
So put the check at the top of the top level __init__.py. Move any invalid syntax in that file to an import. Is there any reason that would be a worse idea?
Maybe half of the python code I use comes from single files. Your approach works for a module.