[Numpy-discussion] include file location and .eggs

konrad.hinsen at laposte.net konrad.hinsen at laposte.net
Mon Jan 23 03:50:16 CST 2006

On Jan 19, 2006, at 18:31, Andrew Straw wrote:

> For me, and I suspect for most others in favor of the new way, the
> answer boils down to using eggs with out-of-the box numpy. Eggs are  
> the

Thanks for explaining this issue in some detail!

> = Why can't eggs use traditional include locations? =
> Multiple version support. Using eggs, it is possible to have multiple
> versions of the same distribution, such as numpy, installed within a
> single Python installation. (I use "distribution" to mean  
> collection of

How is multiple version support in eggs supposed to work in the case  
of packages that contain C modules?

Let me give a concrete example: Numeric, ScientificPython, and MMTK.  
Numeric provides a C API through its header files. ScientificPython  
and MMTK both contain C modules that depend on that C API.  
ScientificPython also provides a C API for two of its modules, which  
in turn MMTK depends on.

Suppose I would like to have both Numeric 23.5 and Numeric 24.2 on my  
machine, and also Scientific 2.4.2 and Scientific 2.5.1. I would then  
need four sets of the binary modules of Scientific:

1) 2.4.2 for Numeric 23.5
2) 2.4.2 for Numeric 24.2
3) 2.5.1 for Numeric 23.5
4) 2.5.1 for Numeric 24.2

I would also need four sets of the binary modules of MMTK, assuming  
that I am happy with just one version of MMTK.

Unless some mechanism (which would have to be part of egg  
construction or egg installation) makes sure that the correct  
binaries are used for the particular combination of versions that I  
wish to use, I will end up having lots of mysterious crashes  
resulting from incompatible binary versions.

If the egg mechanism does take care of such dependencies, then it  
could easily (and thus should) take care of selecting the right  
combination of header files. If it doesn't, then it should not be  
used at all for packages containing C or Pyrex modules, and packages  
like numpy should better not accomodate to eggs because in the long  
run that will only cause support headaches.

Konrad Hinsen
Laboratoire Léon Brillouin, CEA Saclay,
91191 Gif-sur-Yvette Cedex, France
Tel.: +33-1 69 08 79 25
Fax: +33-1 69 08 82 61
E-Mail: khinsen at cea.fr

More information about the Numpy-discussion mailing list