在c app中嵌入Python应用程序

时间:2013-10-08 09:10:06

标签: c python-2.7 shared-libraries embed

我正在将c库集成到python应用程序中。 我需要将一个变量列表从python大小传递给C lib的包装器(我正在调用)只是为了理解,我写了一个小程序:
在python应用程序中加载共享库后。 在Python方面:

 c_args = [5,6]
 PyPrintVal(c_args)

在C方面:

PyPrintVal(PyObject *c_args)
{
       int i=0;
       int j=0;
       printf("In eINoiseRemoval\n");
       if (!PyArg_ParseTuple(c_args, "ii", &i,&j))
       {      fprintf(stderr, "error in parsing\n");
              return -1;
       }
       printf(i1=%d   j=%d\n, i,j)
}

然后我得到分段错误?还剩下什么吗? 因为我正在寻找http://docs.python.org/2/extending/extending.html#a-simple-example

但没有得到任何答案。 感谢

1 个答案:

答案 0 :(得分:1)

您可以使用gdb找出此段错误的确切位置:

$ gdb python
......
> set args my_python_script.py
> run
.......
Segmentation Fault
> where

这将为您提供堆栈跟踪并指出segfault的确切位置。