On 2 Jul 2008, at 3:59 PM, Robert Kern wrote:
On Wed, Jul 2, 2008 at 17:43, Nathan Jensen <Nathan_Jensen@raytheon.com> wrote:
Hi,
I was wondering if there was any way to speed up the global import of numpy modules. For a simple import numpy, it takes ~250 ms. In comparison, importing Numeric is only taking 40 ms. It appears that even if you only import a numpy submodule, it loads all the libraries, resulting in the painful performance hit. Are there plans to speed up the importing of numpy,
I am not sure how much is possible.
or at least have it not load libraries that aren't requested?
At this point in time, it is too late to make such sweeping changes to the API.
One could use an environmental variable such as NUMPY_SUPPRESS_TOP_LEVEL_IMPORTS, that, if defined, suppresses the importing of unneeded packages. This would only affect systems that define this variable, thus not breaking the API but providing the flexibility for those that need it. (This or a similar variable could also contain a list of the numpy components to import automatically.) If you want to try this, just modify numpy/__init__.py with something like the following import os fast_import = if 'NUMPY_SUPPRESS_TOL_LEVEL_IMPORTS' in os.environ del os if fast_import: <customised imports> else: <standard imports etc.> del fast_import Michael.