[Pythonmac-SIG] The versioning question...

Bob Ippolito bob at redivi.com
Mon Dec 27 19:47:36 CET 2004


On Dec 27, 2004, at 1:27 PM, Chris Barker wrote:

> Bob Ippolito wrote:
>> That doesn't fix the multiple versions problem.
>
> This is a big issue that the core Pythonistas don't seem to be 
> interested in addressing. It's odd, because I think it's a no-brainer 
> that python modules need to be versioned, and there needs to be a way 
> to have multiple versions co-existing and user (that is code) 
> selectable. They are just like dynamic libraries in this regard. I 
> think that's one reason Py2App and the like are so necessary now, it's 
> the equivalent of statically linking an app.
>
> Particularly if Bob's idea of including PyObjC with MacPython gets 
> implemented, it would be great to have a versioning system in place 
> for it, so people could count on it being there, and not breaking apps 
> that use when a new version comes out.

PyObjC is pretty good about maintaining backwards compatibility.. 
there's still some garbage in there like objc.runtime that nobody 
should be using anymore :)

> Robin has added versioning to the latest wxPython, and I. for one am 
> ecstatic. It works great for me. I am generally using 2.5.3, but have 
> 2.4.2 installed, and a number of my apps depend  on it (on Linux 
> anyway,  it's pretty useless on OS-X)
>
> It's great to be able to put:
>
> import wxversion
> wxversion.select("2.4")
>
> At the top of my apps, and know that they'll use the version of 
> wxPython I tested against.
>
> Anyway, just a rant, but I do think something like this should be done 
> for any major packages that come with MacPython, like PyObjC.
>
> It would be even better if there were a standard, Python-wide 
> approach, but my read of comp.lang.python tells me it ain't gonna 
> happen.

I don't particularly like this approach, it doesn't solve any problems 
I've ever had, and it confuses stuff like py2app.  You can still only 
use one version of wxPython per Python process.  For an application, 
it's pretty easy to have it set a particular path on startup or include 
a local copy of its dependencies (a la py2app).

The only "real" solution is with namespaces, like importing wx2_4 
instead of wx, since extensions are effectively process-global.. but 
that is an obvious maintenance problem.

> Let's keep in mind how annoyed we all are that Apple supplied a python 
> that makes it difficult to install a newer python without breaking 
> things. Why should we not have the same standard for packages?

It's not really their fault that Python had bugs when they built it.. 
would've been nice if they were willing to upgrade, though.

-bob



More information about the Pythonmac-SIG mailing list