Skip to content Skip to sidebar Skip to footer

Calling A C Function From A Python File. Getting Error When Using Setup.py File

My problem is as follows: I would like to call a C function from my Python file and return a value back to that Python file. I have tried the following method of using embedded C

Solution 1:

The working code from above in case anyone runs into the same error: the answer from @dclarke is correct. The initialization function in python 3 must have PyInit_(name) as its name.

#include <Python.h>
#include "sum.h"

static PyObject* mod_sum(PyObject *self, PyObject *args)         
{
    int a;
    int b;
    int s;
    if (!PyArg_ParseTuple(args,"ii",&a,&b))                      
       return NULL;
    s = sum(a,b);                                               
    return Py_BuildValue("i",s);                                
}

/* DECLARATION OF METHODS*/
static PyMethodDef ModMethods[] = {
    {"modsum", mod_sum, METH_VARARGS, "Descirption"},           
    {NULL,NULL,0,NULL}
};

// Module Definition Structure
static struct PyModuleDef summodule = {
   PyModuleDef_HEAD_INIT,"modsum", NULL, -1, ModMethods     
};

/* INITIALIZATION FUNCTION*/
PyMODINIT_FUNC PyInit_sum(void)
{
    PyObject *m;
    m = PyModule_Create(&summodule);
    return m; 
}

Post a Comment for "Calling A C Function From A Python File. Getting Error When Using Setup.py File"