diff --git a/faiss/python/swigfaiss.swig b/faiss/python/swigfaiss.swig index a0cc752c0..7582e01de 100644 --- a/faiss/python/swigfaiss.swig +++ b/faiss/python/swigfaiss.swig @@ -1236,9 +1236,23 @@ struct PythonInterruptCallback: faiss::InterruptCallback { %} +%{ +/* See https://github.com/facebookresearch/faiss/issues/4845 */ +static int _faiss_init_numpy() { + import_array1(-1); + return 0; +} +%} + %init %{ /* needed, else crash at runtime */ - import_array(); + if (_faiss_init_numpy() < 0) { +#if SWIG_VERSION >= 0x040400 + return -1; +#else + return NULL; +#endif + } PythonInterruptCallback::reset(); %}