[Numpy-discussion] minimal numpy ?

Robert kxroberto at googlemail.com
Sat May 16 06:23:23 EDT 2009


David Cournapeau wrote:
> Robert wrote:
>> for use in binary distribution where I need only basics and fast 
>> startup/low memory footprint, I try to isolate the minimal ndarray 
>> type and what I need..
>>
[..]
> 
> I think you need at least umath to make this work: when doing import
> numpy.core.multiarray, you pull out the whole numpy (because import
> foo.bar induces import foo I believe), whereas import multiarray just
> imports the multiarray C extension.
> 
> So my suggestion would be to modify numpy such as you can do import
> numpy after having removed most directories inside numpy. The big ones
> are distutils and f2py, which should already save 2.5 Mb and are not
> used at all in numpy itself. IIRC, the only problematic package is
> numpy.lib (we import numpy.lib in numpy.core IIRC).
> 

Did like this - keeping a /numpy/core folder structure.
In attachment is a README-minimal-numpy.txt
Maybe thats interesting for many users / inclusion somewhere in 
the docs.
Result is: some 300kB compressed.
And startup very fast.

Strange:
most imports in the package are relative - which is good for 
(flat) repackaging. Just one absolutue "from numpy.core.multiarray 
import ..." in a py file.
Yet the 2 remaining DLL's obviously contain absolute imports of 
each other. Just because of that it is not possible to have the 
"minimal numpy" in a separate package folder with other name 
(without recompiling), but one needs to rename/remove the original 
numpy from the PYTHONPATH :-(

Maybe the absolute imports could be removed out of the DLLs in 
future. By #ifdef or so in the C code the newer Pythons also can 
be forced to do precisely relative import.


Robert
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: README-minimal-numpy.txt
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20090516/344c0958/attachment.txt>


More information about the NumPy-Discussion mailing list