I ported a python2 app with py2to3 a couple months ago and it wasn't completely painless.
The worst problem I ran into was that it didn't know which strings were supposed to be bytes or unicode. And the program would throw a runtime error when it tried to do something like use a byte regex on a unicode string.
That's not a bad thing, though. That signifies ambiguity in your code. You're better off fixing problems like that than you are letting them go undetected or unfixed.
Comments
I ported a python2 app with py2to3 a couple months ago and it wasn't completely painless.
The worst problem I ran into was that it didn't know which strings were supposed to be bytes or unicode. And the program would throw a runtime error when it tried to do something like use a byte regex on a unicode string.
That's not a bad thing, though. That signifies ambiguity in your code. You're better off fixing problems like that than you are letting them go undetected or unfixed.