[SciPy-dev] what the heck is an egg ;-)

Joe Harrington jh@physics.ucf....
Sat Dec 1 02:37:36 CST 2007

> setup.py and using distutils is not novel: this is the standard way to 
> distribute python packages to be built for years (distutils was included 
> in python in 2000, 2001 ?).

Well, it's a matter of perspective, and the perspective I take is that
of a new user to Python, or even a non-Python-using system manager who
is installing numpy and friends for others to use.  To them, *anything*
that is not a tar.gz, RPM, or Deb is novel, and most would not dare to
use even an un-novel tar.gz in their OS directories.  Then we say, here,
execute this setup.py as root, it's code for an interpreted language and
you have no idea what it will do.  Well, that's pretty terrifying,
especially to the security-conscious.

I know almost nothing about eggs.  I see them being used for all the
Enthought code, which provides the de facto standard 3D environment,
mayavi2.  What's a numerical package without a 3D environment?  While
that's not on scipy.org, it's darn close, and necessary for an
environment that competes with IDL or Matlab.

I agree that the correct path is to push everything into binary
installs, even the experimental stuff.  I love the OS installers, and I
thank the packagers from the bottom of my heart!  If only there were
more of them, and if only they could handle more of these packages.  The
OS installers may not deal with multiple package version on Linux, but I
have never wanted more than one version.  Someone who does is probably a
developer and can handle the tar installs, eggs, or whatever, and direct
Python to find the results.  I believe that we would double our
community's size if all our major packages were available in binary
installs for all major platforms.

But, a plethora of packagers is not our situation.  It would help the
inexperienced (including the aforementioned system manager, who will
never be experienced in Python) to have some plain talk about what these
Python-specific installers do, and how to use them to install,
uninstall, and automatically update.  It can probably be knocked off in
about a page per installer, but it has to be done by someone who knows
them well.


More information about the Scipy-dev mailing list