Python 3 on Ubuntu

For both Ubuntu and Debian, we have ongoingproject goals to make Python 3 the default, preferred Python version in the distros. This means:

Python 3 will be the only Python version installed by default.

Python 3 will be the only Python version in any installation media (i.e. image ISOs)

Only Python 3 will be allowed on the Ubuntu touch images.

All upstream libraries that support Python 3 will have their Python 3 version available in the archive.

All applications that run under Python 3 will use Python 3 by default.

All system scripts in the archive will use Python 3.

What this does not mean:

/usr/bin/python will point to Python 3. No, this is not going to happen (unless PEP 394 advocates otherwise, which is doubtful for the foreseeable future). /usr/bin/python and /usr/bin/python2 will point to Python 2.7 and /usr/bin/python3 will point to the latest supported Python 3 version.

Python 2 will be removed from the archive. No, this is not going to happen. We expect Python 2.7 to remain supported and available in Ubuntu for quite a long time, given that PEP 373 promises upstream bug fix maintenance support until 2020. It would be nice if we could demote Python 2 to universe, but that's currently problematic for technical reasons relating to multi-Python version support in Debian/Ubuntu.

Status

At the time of this writing (2014-05-08), Ubuntu 14.04 LTS has recently been released. We made great progress toward these goals, but we must acknowledge that it is a daunting, multi-cycle process. A top goal for 14.04 was to remove Python 2 from the touch images, and sadly we almost but didn't quite make it. There were still a few autopilot tests for which the Python 3 ports did not land in time, thus keeping Python 2 autopilot support on the base touch image. This work is being completed for Utopic and we expect to remove Python 2 from the touch images early in the 14.10 cycle (actually, any day now).

On the desktop and server, we have this page tracking results. We're much closer on the server images than we are on the desktop. This Trusty blueprint tracks work for the touch images. An official transition tracker and a publicly shared Google docs spreadsheet to track this effort. (Note: these documents likely need updating for the Utopic cycle.) This is an ambitious effort that will only succeed with help from the greater Ubuntu, Debian, and Python communities. In other words, we need you!

We'll track Ubuntu (and some Debian) related tasks here. This page used to contain a lot of good quick references for porting to Python 3, but that information has now moved to wiki.python.org.