

Python 3.1 released - uggedal
http://www.python.org/download/releases/3.1/

======
whughes
Is anyone here actually using Python 3 or at least planning a migration? I am
wondering when the fallover is finally going to happen if no one takes the
initiative.

~~~
uggedal
Take Django, one of the most successful Python projects. They were recently
debating whether to drop Python 2.3 support or not. RHEL 4 shipped Python 2.3
and Redhat supports it until February 29, 2012. Se this thread for detailed
reasoning: [http://groups.google.com/group/django-
developers/msg/0888b1c...](http://groups.google.com/group/django-
developers/msg/0888b1c8f2518059)

In other words, we won't see any major projects dropping 2.x support in the
foreseeable future.

~~~
drawkbox
This is one big problem with Python libs and evolution of the versioning. The
best default support you can get is 2.4 even at places like Joyent due to
Redhat and RHEL and other package systems. It is unfortunate.

I was hoping stuff like Django, SQL Alchemy, Google AppEngine and even Unladen
Swallow to focus more on Python 3 btu there is so much vested in older
versions. If everyone could just get to 2.6 or 2.7 at least then new
frameworks and old stuff can run for a while.

But python evolution is a bit held back by situations like this. That is one
problem that Ruby, .NET etc dont' have and as a Pythonista for the last few
years, this is concerning.

Google AppEngine may be adding python version support soon. There should be an
easier way to have parallel python libs and switch between them per app.

Hopefully this is a focus soon.

~~~
bobbyi
Version .6 of SqlAlchemy will support Python 3.

~~~
drawkbox
I hope others follow very soon.

------
granular
Possibly of interest: Here's a regularly-updated plot by Georg Brandl showing
the number of Python 3 packages in the PyPI:
<http://dev.pocoo.org/~gbrandl/py3pkgs.png>

------
kylec
One thing that I don't really understand is why not adopt a new syntax to
allow users to specify the version of Python a file should be imported and run
under. Just have the interpreter pick 2.X by default, but if there's something
like

    
    
        ##python-3.0
    

as the first line, then load the file with the 3.0 interpreter. This way you
can intermix 2.X libraries with an otherwise 3.X project without having to
deal with the whole 2to3 thing.

~~~
pcc
In a *nix environment, set the shebang line of the file to point to the
precise interpreter you want to use. Any imports that file makes will be from
the /usr/lib/pythonX.Y for that version of the interpreter. (In order to get
the library installed into that path in the first place, it must have been
done via that version of the interpreter specifically, so its quite possible
to keep 3.x and 2.x versions of the same library quite isolated).

Of course imports can also come from the local dir, via pythonpath and the
various manipulations thereof (buildout, virtualenvs etc), so there are a few
degrees of freedom via which to manage things.

May be worth pointing out that a file and all its imports will only be running
under one interpreter, so a file running on 3.x (via shebang line, say), will
not be able to use a 2.x library (even if placed in the correct path) where
the code of that library is fundamentally not 3.x compatible.

------
dgallagher
Anyone know what version of Python Mac OS X Snow Leopard will ship with come
September?

~~~
ken
From some quick searching, a couple people say it's 2.6.1, and at least one
person says both 2.6 and 3.

------
pkrumins
Python 3100 :)

