[Numpy-discussion] [matplotlib-devel] Announcing toydist, improving distribution and packaging situation
Christopher Barker
Chris.Barker@noaa....
Tue Dec 29 15:29:46 CST 2009
David Cournapeau wrote:
> Buildout, virtualenv all work by sandboxing from the system python:
> each of them do not see each other, which may be useful for
> development,
And certain kinds of deployment, like web servers or installed tools.
> but as a deployment solution to the casual user who may
> not be familiar with python, it is useless. A scientist who installs
> numpy, scipy, etc... to try things out want to have everything
> available in one python interpreter, and does not want to jump to
> different virtualenvs and whatnot to try different packages.
Absolutely true -- which is why Python desperately needs package version
selection of some sort. I've been tooting this horn on and off for years
but never got any interest at all from the core python developers.
I see putting packages in with no version like having non-versioned
dynamic libraries in a system -- i.e. dll hell. If I have a bunch of
stuff running just fine with the various package versions I've
installed, but then I start working on something (maybe just testing,
maybe something more real) that requires the latest version of a
package, I have a few choices:
- install the new package and hope I don't break too much
- use something like virtualenv, which requires a lot of overhead to
setup and use (my evidence is personal, despite working with a team that
uses it, somehow I've never gotten around to using for my dev work, even
though, in theory, it should be a good solution)
- setuptools does supposedly support multiple version installs and
selection, but it's ugly and poorly documented enough that I've never
figured out how to use it.
This has been addressed with a handful of ad-hock solution: wxPython as
wxversion.select, and I think PyGTK has something, and who knows what
else. It would be really nice to have a standard solution available.
Note that the usual response I've gotten is to use py2exe or something
to distribute, so you're defining the whole stack. That's good for some
things, but not all (though py2app's "alias" bundles are nice), and
really pretty worthless for development. Also, many, many packages are a
pain to use with py2exe and friends anyway (see my forthcoming other
long post...)
> - you cannot use sandboxing as a replacement for backward
> compatibility (that's why I don't care much about all the discussion
> about versioning - I don't think it is very useful as long as python
> itself does not support it natively).
could be -- I'd love to have Python support it natively, though
wxversion isn't too bad.
-Chris
--
Christopher Barker, Ph.D.
Oceanographer
Emergency Response Division
NOAA/NOS/OR&R (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception
Chris.Barker@noaa.gov
More information about the NumPy-Discussion
mailing list