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

David Cournapeau david at ar.media.kyoto-u.ac.jp
Sat Dec 1 03:54:37 EST 2007


Joe Harrington wrote:
>> 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.
>   
If you have any strong concern on security, you don't use random 
tarballs sources downloaded from the internet. You can also install as a 
non root (I do this all the time, I don't have root access on my 
workstation at my lab, for example). I don't see how this is different 
than any other source package (using autoconf, for example).

If you have a better idea, please speak up, but you will have a hard 
time to sell something which works as well as distutils, on as many 
platforms, and which is less novel. As an aside, I would say that 
someone who is not capable of installing a basic python package after 10 
minutes is not worth being called an administrator: there is a README, 
you can find the info in one minute in google. Now, numpy + scipy is 
certainly more difficult to install, because of dependencies and so on, 
but then this is no different than pure C tarballs.
> 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?
I don't know, I am using numpy and scipy for more than one year without 
even knowing what mayavi is. I have used matlab for years without 3d 
either. So this is a matter of perspective.
>
> 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. 
Maybe not you, but for some usage, it seems to be extremely useful. 
Again, I really don't like eggs. But some people like them, for this 
exact reason.
>  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.
>   
Sure. So do you offer some man hours to work on that ? :) I agree 100% 
with you, binary packages are important, and could be improved for 
numpy/scipy, but this is a lot of boring work (in perticular, one 
problem is the dependencies on linux, which means even more boring work 
because it involves other packages; although, even once you have a 
buildable rpm/debian, having it integrated upstream is a lot of 
bureaucratic work).
> 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.
>   
You mean http://www.scipy.org/Installing_SciPy ? I agree the page is 
getting a bit messy, perticularly for linux, but you can add/modify 
anything which you find appropriate, this is wiki, after all. AFAIK, you 
cannot uninstall python packages (most of the data are in one directory 
you can simply remove, though), except when using binary installers.

If you care about easy installation, though, why not just using 
numpy/scipy packaged for your distribution (I understand you are using 
linux) ? It is officially available for ubuntu and debian, and binary 
packages are available for FC 6 and 7, as well as for open SUSE:

http://www.scipy.org/Installing_SciPy/Linux (ashigabou repository)

David



More information about the SciPy-Dev mailing list