[Zope-dev] Please, if you port to Python 3, port to 2&3

Jim Fulton jim at zope.com
Thu May 5 13:41:18 EDT 2011

On Wed, May 4, 2011 at 3:01 AM, Lennart Regebro <regebro at gmail.com> wrote:
> On Sat, Apr 30, 2011 at 17:36, Jim Fulton <jim at zope.com> wrote:
>> If we decide to port zope.org-based projects to Python 3, please
>> please please, port them to Python 2&3 rather than relying on 2to3 (or
>> 3to2).  That is, update the code to work with both Python 2 and Python
>> 3.  Relying on 2to3 (or 3to2) is a headache for anyone who uses a
>> "develop" installation of a package. (It's also rather annoying for
>> someone installing a 2to3-based project in Python 3.)
> I'm not sure exactly what "using a develop installation means" or what
> headaches it causes,

Often, when working on a project, I'll check it out and create a
develop egg that allows me to work with it in place.  It's not
practical to run 2to3 on it.  This is especially true if I'm working
on it while I'm working on something else.

> but, for many projects supporting Python 2 and
> Python 3 without 2to3 is going to require massive changes and/or
> dropping Python 2.5 support. That has to be considered.

Right, Python 3 is a giant pain.  2to3 is far from perfect, so
significant changes are often needed even if you use 2to3.  I believe
that the workflow impacts of 2to3 are far worse than the, admittedly
painful, impacts of maintaining code that runs in Python 2.5-2.7 and
3.2. Buildout works with all these versions and it's been fairly
straightforward to make it do so.

>> I found 2to3 somewhat helpful in beginning the process of getting
>> buildout working with Python 3, but then worked the source into a form
>> that works with both Python versions. The code is uglier, but not as
>> ugly as incporating 2to3 in the development workflow.
> Well, incorporating 2to3 into the buildout development workflow would
> have been nearly impossible, but buildout is a special case.

AFAICT, 2to3 really just doesn't play with develop eggs. That was the
buildout issue. It wasn't unique to buildout. I'm sure I'm not the
only one who uses develop eggs.


Jim Fulton

More information about the Zope-Dev mailing list