- the porting strategy is explained here: https://docs.djangoproject.com/en/dev/topics/python3/
- the porting work happens in the master branch; commits related to the Python 3 port are usually prefixed by [py3]: https://github.com/django/django/commits/master
- the test suite doesn't pass yet, but the hardest part is done: http://ci.djangoproject.com/job/Django%20Python3/
- most of the work happened over the last three weeks, and 5 or 6 core developers are contributing significantly
They seem to be on schedule as well, which is brilliant .
I can never be surprised enough how people are excited about django features that others take for granted.
Does anyone get excited at the mere thought that some framework, somewhere has a particular feature? If you aren't using Pyramid then what good does it do you?
Armin Ronacher has long been grumpy about Python 3 so don't count on a Flask port any time soon
There are different reasons for why I am grumpy though. The things that stop me from porting stuff to Python 3 from the side of Python are largely resolved. In that regard I am just a lazy person and nobody cares about Python 3 YET. As far as the general development of the language goes there is still a lot missing in Python 3 that worked in Python 2 so I am not excited yet.
Port will happen though, just have to decide when I will break the API to make it possible. As it stands right now a port won't be possible without breaking Werkzeug's API because it's just one level too low.
You'd be surprised.
The last time I tried doing that I ended up in some weird quagmire with the LD_LIBRARY_PATH being messed up. There must be a standard way to install it?
apt-get install python3
It's always worked for me.
FYI the demo uses a manually compiled Python.
Or, since Django on Python3 doesn't seem production ready yet, I'd "upgrade" to Debian testing or unstable, and hope that by the time Django became production ready Py3.2 was in Debian stable.
EDIT: pythonz is pretty good too (http://saghul.github.com/pythonz/)
See this answer here: http://askubuntu.com/questions/14615/how-do-i-make-the-termi...
The porting process (which is still in progress for Django) shouldn't be too difficult for most pluggable applications, as Django strongly encourages using unicode everywhere.
Django had committed to supporting older versions of Python 2.x that weren't Python 3 friendly (largely because of older installations of RHEL and CentOS).
Here was a discussion asking about dropping 2.4 support during development of Django 1.3:
Django 1.2 still supported Python 2.3+, Django 1.3 supported Python 2.4+, Django 1.4 supported Python 2.5+.
Django 1.5 (which is the current trunk) finally has Python 2.6.5 as its minimum platform which reduces some of the major compatibility pain points.
We wanted a solution that would be convenient for authors of pluggable apps, so they could use the same strategy as Django itself. This is why we used six rather than an ad-hoc compatibility library.
Glad to see it moving.
(Go ahead and downvote me, this comment has absolutely value, yet despite knowing that I'm so happy I still feel compelled to post it. :)
As long as there aren't a bunch of "me too" comments, of course.
Python 3 is here, now.
Do you know of anything new on PIL (http://www.pythonware.com/products/pil/) ? Or any similar library that might replace it for Python 3?
Very early on I had plenty of headaches where some library I needed was Python 2.X only, but that's becoming increasingly rare.
Also, Python 3 will be shipped with the next ubuntu version https://wiki.ubuntu.com/QuantalQuetzal/TechnicalOverview/Alp...