[Numpy-discussion] [SciPy-user] Managing Python with NumPy and many external libraries on multiple Windows machines

Stéfan van der Walt stefan at sun.ac.za
Tue Apr 28 16:26:25 EDT 2009


2009/4/28 Charles R Harris <charlesr.harris at gmail.com>:
> It is needed when the extension is loaded, that is why the very first
> function in the API returns it. Otherwise it is impossible to check if
> extensions compiled against one version of numpy can be loaded when another
> version of numpy is present. You need to know what API numpy presents and
> that can be different than the API the extension was compiled against.

Right, I phrased myself incorrectly.  NPY_VERSION is checked at
runtime to make sure modules compiled against a different ABI are not
imported.  These defines used to be closer to the top of the header
file, but now a lot of other stuff has been added.  Maybe it would be
good to include this as a separate header file, npy_version.h or
npy_api.h.

IIRC, we can expose NPY_FEATURE_VERSION as part of the API without
breaking ABI compatibility, as long as we add it at the end of the API
functions list.  As a hack, we can then check the length of the API
functions list to make sure it is available before we call it.

Cheers
Stéfan



More information about the NumPy-Discussion mailing list