I am failing to open numpy with the Python C API. I have the following code
#include<Python.h>
int main()
{
Py_Initialize();
PyRun_SimpleString("import numpy");
PyObject* numpy = PyImport_ImportModule("numpy");
Py_Finalize();
return 0;
}
The line PyRun_SimpleString("import numpy") prints to console:
Traceback (most recent call last): File "", line 1, in File "C:\Users\matt.heath\AppData\Local\Continuum\Anaconda3\lib\site-packages\numpy__init__.py", line 180, in from . import add_newdocs File "C:\Users\matt.heath\AppData\Local\Continuum\Anaconda3\lib\site-packages\numpy\add_newdocs.py", line 13, in from numpy.lib import add_newdoc File "C:\Users\matt.heath\AppData\Local\Continuum\Anaconda3\lib\site-packages\numpy\lib__init__.py", line 8, in from .type_check import * File "C:\Users\matt.heath\AppData\Local\Continuum\Anaconda3\lib\site-packages\numpy\lib\type_check.py", line 11, in import numpy.core.numeric as _nx File "C:\Users\matt.heath\AppData\Local\Continuum\Anaconda3\lib\site-packages\numpy\core__init__.py", line 14, in from . import multiarray ImportError: cannot import name 'multiarray'
and PyImport_ImportModule("numpy") returns NULL.
I can open other modules OK (e.g. PyRun_SimpleString("import chunk"); is fine) and import numpyworks just fine from Python in a console.
I am using Windows 10 and Python 3.5.
What can I do?
numpy.core.multiarray. This is a shared object. I.e., it's compiled rather than a regular Python file. My hypothesis is that your code sample cannot import object files and that some other approach is required. - chrisaycock