Going from 2 to 3 isn't that hard because Python 3 was released ages ago with the expectation that the changeover would be gradual.
The only ways I can see to make it that easy on the day Python 3 was released are (1) no backward-incompatible changes (but enabling such changes was the whole point of Python 3) or (2) doing all the preparatory work before "releasing" Python 3, which in practice would have taken just as long and required there to be a pre-release Python 3 to work with.
#1 misses the main point of having a Python 3 at all. #2 basically looks just like the way things actually are, except that Python 3 is labelled "alpha" or "pre-release" or something for years longer.
People like to complain about how slow the Python 3 changeover has been, but it seems to me that it's worked. The obvious point of comparison would be Perl 6, which hasn't exactly been a triumphant success. (Though there are many other differences between Python 3 and Perl 6, and it's not at all clear that Perl 6 would be widely used if they'd adopted a model more like Python 3's.)
Not to mention that just about all of the changes I've heard about in Python from 2 to 3 are changes that Perl5 has already handled in a backwards compatible way.
(In at least some cases the changes happened more than a decade ago.)
The only ways I can see to make it that easy on the day Python 3 was released are (1) no backward-incompatible changes (but enabling such changes was the whole point of Python 3) or (2) doing all the preparatory work before "releasing" Python 3, which in practice would have taken just as long and required there to be a pre-release Python 3 to work with.
#1 misses the main point of having a Python 3 at all. #2 basically looks just like the way things actually are, except that Python 3 is labelled "alpha" or "pre-release" or something for years longer.
People like to complain about how slow the Python 3 changeover has been, but it seems to me that it's worked. The obvious point of comparison would be Perl 6, which hasn't exactly been a triumphant success. (Though there are many other differences between Python 3 and Perl 6, and it's not at all clear that Perl 6 would be widely used if they'd adopted a model more like Python 3's.)