[Numpy-discussion] Determining NPY_ABI_VERSION statically in compiled extensions

Robert T. McGibbon rmcgibbo at gmail.com
Mon Oct 8 19:37:38 EDT 2018


That doesn't quite cover my use case. I'm interested in querying a .whl
file containing .so files that were compiled against numpy (not my
currently installed version of numpy) to determine the conditions under
which those `.so` files were compiled.


On Mon, Oct 8, 2018 at 5:26 PM Matti Picus <matti.picus at gmail.com> wrote:

> On 08/10/18 23:31, Robert T. McGibbon wrote:
> > Is anyone aware of any tricks that can be played with tools like
> > `readelf`, `nm` or `dlopen` / `dlsym` in order to statically determine
> > what version of numpy a fully-compiled C extension (for example, found
> > inside a wheel) was compiled against? Even if it only worked with
> > relatively new versions of numpy, that would be fine.
> >
> > I'm interested in creating something similar to
> > https://github.com/pypa/auditwheel that could statically check for
> > compatibility between wheel files and python installations, in
> > situations where the metadata about how they were compiled is missing.
> > --
> > -Robert
> >
> NPY_ABI_VERSION is exposed in C as PyArray_GetNDArrayCVersion and
> NPY_API_VERSION is exposed in C as PyArray_GetNDArrayCFeatureVersion.
> These are not incremented for every NumPy release, see the documentation
> in numpy/core/setup_common.py.
> The numpy.__version__ is determined by a python file numpy/version.py,
> which is probably what you want to use.
> There is an open Issue to better reveal compile time info
> https://github.com/numpy/numpy/issues/10983
> Matti
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at python.org
> https://mail.python.org/mailman/listinfo/numpy-discussion

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20181008/6e91d011/attachment.html>

More information about the NumPy-Discussion mailing list