1.5 vs. 2x - build problem

Geoff Gerrietts geoff at gerrietts.net
Thu Sep 11 19:11:42 CEST 2003

Quoting Fritz Wuehler (fritz at expires-200309.rodent.frell.eu.org):
> I downloaded a tarball which doesn't compile.  The error message
> says I need python 2x but all I have is 1.5.  Can I fix the
> compatability problem and get it to work on 1.5?

My experience has been that most (and not all!) of the applications
that require Python 2.x, do it mostly for the sake of convenience.
This means that they'll use 
  func(*args, **kw) 
instead of 
  apply(funcs, args, kw)

or maybe
  mylist = [str(x) for x in yourlist]
instead of
  mylist = map(str, yourlist)

  x += 1
instead of
  x = x + 1

There are other features you'll find that don't work -- Python has
gotten a lot more convenient since 1.5.2! -- but most of the time, the
2.x dependencies are convenience features. Some features are more
difficult to port back than others, though. If you're dealing with
something that (for instance) has unicode requirements, you're just
not gonna be able to do what you need on 1.5.2.

So the answer is: probably; I have only run across one app so far that
I couldn't eventually port back to 1.5.2 at least well enough that it
was running for me. That app was Pyana. It may or may not be easy.

Quoting Gerhard Häring (gh at ghaering.de):
> On the other hand, you could invest the time and bring your 
> software/system up-to-date with Python 2.3. You can just install it in 
> /usr/local and leave your previously installed Python alone.
> FWIW I, for one, would reject any patches that'd add Python < 2.1 
> compatibilty to my software.

I wouldn't want to take one of my personal projects back to 1.5.2 and
lose the additional expressive power that recent Pythons have given
me, either. On the other hand, in my professional capacity, I have
spent an assembled couple of months trying to port 200k lines of
application code forward onto new versions of Python and Zope. It's
going to take a couple weeks of QA and deployment work to get it all
into place. On the other hand, it usually takes me an afternoon to
backport someone else's extension code well enough that I can use it.

Sometimes people aren't interested in the patches, sometimes they are.
Sometimes I fail to produce them after making the changes. For my
part, I feel bad for the next guy down the line in at least two of
those cases. Many people have this cavalier "well just upgrade, wtf is
wrong with you?" attitude, but it's often not as trivial as everyone
would like to pretend. (Of course, sometimes it /is/ trivial, and if
it is, you should do it.)


Geoff Gerrietts        <geoff at gerrietts dot net>
"Ordinarily he was insane, but he had lucid moments 
when he was merely stupid."        --Heinrich Heine

More information about the Python-list mailing list