First I read What New for Python 3. It gives a good overview at a high level and touches on the detailed changes.
You can also do a port search on python 3 or similar. There are many good resources and tools.
One tool that is new and hard to find is six , Benjamin Peterson. This allows you to write code compatible with the Python 2 * 3 space.
The part that made it harder for me to support Python 2 and Python 3 compatible code was deployment. I could write code that would work just fine, but when I went to do the package and deploy, it was not clear when the conversion would happen. In the end, I found the distutils build_py_2_to_3 that would do the trick. Using this command in my setup.py, I can free the source distribution, which will be deployed either in Python 2 or Python 3. An example can be found in jaraco.util.
You also asked about the insides. If you really want to get inside information, you can look at the source of Python 2.x and Python 3.x , although, to be honest, I would stick to reading tutorials and maybe some of the .py files in Python folders.
Jason R. Coombs Jul 21 '10 at 11:22 2010-07-21 11:22
source share