Я не могу открыть numpy с API Python C. У меня есть следующий кодНевозможно импортировать numpy из C
#include<Python.h>
int main()
{
Py_Initialize();
PyRun_SimpleString("import numpy");
PyObject* numpy = PyImport_ImportModule("numpy");
Py_Finalize();
return 0;
}
линии PyRun_SimpleString("import numpy")
печатает на консоль:
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'
и PyImport_ImportModule("numpy")
возвращает NULL
.
Я могу открыть другие модули OK (например, PyRun_SimpleString("import chunk");
в порядке), а import numpy
отлично работает с Python в консоли.
Я использую Windows 10 и Python 3.5.
Что я могу сделать?
В вашей ошибке указано, что он не может импортировать 'numpy.core.multiarray'. Это общий объект. I.e., он скомпилирован, а не обычный файл Python. Моя гипотеза заключается в том, что ваш образец кода не может импортировать объектные файлы и что требуется другой подход. – chrisaycock
@chrisaycock, который помогает. Думаю, я задам более точный вопрос, основанный на этом – MatthewJohnHeath