小编Arn*_*nox的帖子

c ++ python API:PyImport_Import的第二次调用导致SIGSEGV

我试图通过c Api从c ++调用python来获取c ++中两个numpy Arrays的值.我第一次调用我的程序callPython()时,一切似乎运行正常,但第二次调用导致SIGSEGV

  pModule = PyImport_Import(pName);
Run Code Online (Sandbox Code Playgroud)

被执行.

flebool的答案中,有一个比我更简单的最小示例代码,具有相同的错误.

minimal.cpp

#include <Python.h>
#include <numpy/arrayobject.h>

long int geTuple( PyObject *pValue , PyObject *objI  , int i)
{
      objI = PyTuple_GetItem(pValue, i);

      long int n,M;
      double *xJ;

      if (objI != NULL) 
      {
          n = PyArray_NDIM(objI);
          printf("PyArray_NDIM(objI): %ld\n" , n );

          M = *PyArray_DIMS(objI);
          printf("PyArray_DIMS(objI) : %ld\n" , M );

          for (int k = 0; k < M; k++) 
          {
              xJ = (double *) PyArray_GETPTR1(objI, k );
              printf("xJ : %f\n" …
Run Code Online (Sandbox Code Playgroud)

c++ python numpy segmentation-fault

6
推荐指数
1
解决办法
870
查看次数

标签 统计

c++ ×1

numpy ×1

python ×1

segmentation-fault ×1