import_array不适用于嵌入式Python C API中的调试版本

时间:2018-01-30 17:33:45

标签: python c++

我有以下问题:我使用C ++的嵌入式Python C API来执行Python代码。到目前为止,一切都在发布模式下工作,但是一旦我开始运行调试模式,我就会收到错误:

ImportError:numpy.core.multiarray无法导入

从C ++调用时:

Py_Initialize();
import_array();

任何人都可以帮助我吗? 非常感谢提前

1 个答案:

答案 0 :(得分:0)

没有看到完整的程序代码;如果您查看docs,则建议输入以下行:

Py_SetProgramName(argv[0]); /* optional but recommended */

在进行 Py_Initialize()函数调用之前。

“应该在Py_Initialize()之前调用Py_SetProgramName()函数,以通知解释器有关Python运行时库的路径”

确保您的main函数具有argv参数,如文档中的示例。

#include <Python.h>

int main(int argc, char *argv[])
{
  Py_SetProgramName(argv[0]);  /* optional but recommended */
  Py_Initialize();
  PyRun_SimpleString("from time import time,ctime\n"
                 "print 'Today is',ctime(time())\n");
  Py_Finalize();
  return 0;
}