[Numpy-discussion] problem importing NumPy from C/C++

Jim Bosch talljimbo at gmail.com
Fri Apr 13 16:21:54 EDT 2012


One of my colleagues is having some difficulty with some of my code that 
uses the NumPy C-API; I think we're seeing the C import_array() function 
claim that it can't find NumPy, even though "import numpy" works just 
fine in Python.

Here's a minimal embedded-Python program that is enough to cause problems:

---------
#include "Python.h"
#include "numpy/arrayobject.h"
void doImport() {
   import_array();
}
int main()
{
   int result = 0;
   Py_Initialize();
   doImport();
   if (PyErr_Occurred()) {
     result = 1;
   } else {
     npy_intp dims = 2;
     PyObject * a = PyArray_SimpleNew(1, &dims, NPY_INT);
     if (!a) result = 1;
     Py_DECREF(a);
   }
   Py_Finalize();
   return result;
}
---------

That compiles and links fine, but when running it we see:
---------
ImportError: numpy.core.multiarray failed to import
---------
and the exit code is 1.

Note that we can run python and successfully import numpy there, in 
what's otherwise the same environment, so it doesn't appear to be 
PYTHONPATH issue (or, I think, an environment issue, though there might 
be a difference between embedding and extending).

All of the above does work on a number of other systems, so I suspect 
something went wrong with this particular NumPy install, but it claims 
to have been successful.  This is with gcc 4.1.2, RHEL 5.  Any ideas?

Thanks!

Jim Bosch



More information about the NumPy-Discussion mailing list