I've moved my blog to jmcneil.net. This is no longer being updated!

Monday, January 12, 2009

Python 3.0 Porting Efforts?

I've spent the last hour or so wondering if there is a page or a resource that tells me which common Python packages have been ported to 3.0? 

Two reasons.  

First, I think it would be very useful to know what's been updated.  Secondly, I've been trying to find a reason to write some real Python 3.0 code.  If such a resource existed, it would be easy to offer a bit of my time towards helping with porting efforts.  I've written a few "test.py" scripts to learn new features, but nothing of any substance.

Does anyone know?

Update: As it's been pointed out (and I probably should have thought of this), one can simply use the package index to pull a list of 3.0 compatibles:  http://pypi.python.org/pypi?:action=browse&c=533. I guess a good starting point would be to start with useful packages that aren't on here and go from there.  I was really looking for more of a community effort page as it's quite easy to figure out what a specific package supports.


illume said...



pypi seems to be broken(again)... css is missing, but you can still make out a list of packages.

About 21 packages so far for py3k. Compared to over 5000 for python2.5.

Note, that the py3k core python developers have not done a good porting guide yet. For example, there is only a minimal and incomplete C API porting guide, and no tools for converting C api use from py2x to py3k -- like there is with python code.

To make things worse, they decided to change the C library on windows at the same time as the python2.6 and py3k releases. This means C extension modules have a doubly hard time of also having to port to a new C runtime library on windows. This has also slowed things down.

Python core developers need to make helping C API developers a priority, to speed up the process.

Also, there has been a number of of significant bugs with py3k. eg, wsgi is completely broken with py3k... and that's just the start of issues.

However some packages have been preparing for py3k for 1-2 years already... they just haven't made proper releases yet. So there are more packages than what are listed on pypi that are part way done.

slowly, slowly... we'll all get there eventually :)

>>> It's a chicken and egg problem. Mosty an egg problem... there aren't enough eggs yet ;) Eventually the eggs will hatch, and they will turn into chickens... which will then mate with the other chickens to make more eggs. Which will then hatch into chickens...

RuntimeError: maximum recursion depth exceeded

Mike Hansen said...

Cython ( http://www.cython.org ) extension modules can compile to both the Python 2.x and 3.x API's.

It may not be of much help for existing projects, but for new ones, I can't imagine not using it.

Graham Dumpleton said...

illume: If you want WSGI support for Python 3.0, then use Apache/mod_wsgi. Just get latest from subversion trunk and it works fine. Has even been used to run a version of Django that had been ported to Python 3.0 by Martin v. Löwis.

Martin v. Löwis said...

If you want to port something to Python 3.0, port a mysql module; this seems to be a frequent request. If you want to port something really large, try porting Twisted - the Twisted authors have made it clear that 3.0 porting isn't among their priorities.

Jeff McNeil said...

Thanks folks.

I was largely looking more for a community effort type resource. It would be nice to have everything consolidated down for consumption, but if I really need a specific package I can track down its availability via Google or the project page.

I guess I could just pick something *not* listed as 3.0 compatible and go from there.

Anonymous said...

It would also be nice to see a Python 2.6 porting efforts resource. Pypi does not suffice because lots of stuff is not listed, not to mention being out of date in many cases.

In any case, right now the need is to get as much stuff as possible moved on to 2.6. Sooner or later there will be a shim module that will allow 3.0 to use 2.6 modules, but the buzz surrounding 3.0 has caused a lot of people to even ignore 2.6.

This mostly impacts Windows users who can't easily compile C-based modules.

Anonymous said...

Since documentation is something most projects grapple with, docutils gets my vote for "widely used package needing a port".