2016-11-01 8 views
3

파이썬 C API로 numpy를 열지 못했습니다. 나는 다음과 같은 코드를 콘솔로C에서 numpy를 가져올 수 없습니다

#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합니다.

다른 모듈을 열 수 있습니다 (예 : PyRun_SimpleString("import chunk");). import numpy은 콘솔에서 Python으로 올바르게 작동합니다.

저는 Windows 10과 Python 3.5를 사용하고 있습니다.

어떻게해야합니까?

+0

'numpy.core.multiarray'를 가져올 수 없다는 오류가 표시됩니다. 이것은 공유 객체입니다. 즉, 일반 Python 파일보다는 컴파일됩니다. 내 가설은 귀하의 코드 샘플은 개체 파일을 가져올 수 없으며 다른 접근 방법이 필요하다는 것입니다. – chrisaycock

+0

@chrisaycock 도움이됩니다. 나는 그것을 토대로 더 정확한 질문을 할 것이라고 생각한다. – MatthewJohnHeath

답변

0

실제로 이것은 디버그 빌드에서만 문제가됩니다. 배포판 dll이 이미 컴파일 되었기 때문에 python35_d.dll을 직접 만들었습니다. 파일을 만들 때 뭔가 이상한 설정이있을 수 있습니다. 어쨌든, 나는 디버그없이 살 수 있습니다.