future of python3...

David Malcolm dmalcolm at redhat.com
Tue May 3 16:12:15 UTC 2011

On Tue, 2011-05-03 at 08:22 -0700, Rob Healey wrote:
> Greetings:
> I know that I truly do NOT understand the momentous task involved in
> this idea, but I would like to ask it nevertheless!
> Does anyone has any ideas or planned feature requests for updating
> Fedora to python3 instead of python2?

We use Python a lot within Fedora; key system components such as
anaconda and yum are written in Python - Python 2, that is.

We added a Python 3 stack in Fedora 13, parallel-installable with the
main Python 2 stack [1]

Since then, we've been slowly building out the Python 3 stack.  You can
see the current status here:

So Python 3 is usable on Fedora - I've used it myself on some new code
that I've written, and the new version of the language does "feel nicer"
than Python 2 to me.

If you're want to help get more Python 3 into Fedora, there are at least
two ways I can think of:
  - help upstream projects port from Python 2 to Python 3.  This may
mean e.g. adding new automated test coverage to the existing project,
since having good automated test coverage is invaluable.
  - help package Python 3 code for Fedora.  But it's important to work
with upstream on this: don't just run 2to3 on the code.

I hope that at some point enough of the underlying stack will have been
ported to Python 3 that yum and anaconda can switch over (they need to
do so together) - but that's a judgement call for the yum and anaconda
folks to make.  Last time I looked, anaconda had a _lot_ of
dependencies, many of them very old code, without great automated test
coverage.  So writing automated tests for those deps might be a place to
look at, for those interested in this.

Some other distributions have changed /usr/bin/python to signify python
3, rather than python 2.  I don't see us doing that at this time: it
would break too many things, and I don't see any real benefit.

> And gnome3 to python3...?

That's already possible, to some extent; the gobject-introspection code
supports both Python 2 and Python 3.  So if you have a .gir interface
file for a library, in theory you already have Python 3 bindings for
that code (This is in Fedora 15 onwards as the python3-gobject rpm,
built as as a subpackage of pygobject2; I did some of the early work on
the Python 3 port, but John Palmieri and others know far about this than

Hope this is helpful

[1] http://fedoraproject.org/wiki/Features/Python3F13

More information about the test mailing list