#include int main(int argc, char** argv) { int i; PyObject *pModule, *pFunc; PyObject *pArgs, *pValue; if (argc < 3) { fprintf(stderr, "Usage: call.out pythonfile function [args]\n"); return 1; } Py_SetProgramName(argv[0]); Py_Initialize(); /* modified part */ PyRun_SimpleString( "import sys\n" "sys.path.append('.')\n"); pModule = PyImport_ImportModule(argv[1]); pFunc = PyObject_GetAttrString(pModule, argv[2]); pArgs = PyTuple_New(argc - 3); for(i = 0; i < argc - 3; ++i) { pValue = PyInt_FromLong(atoi(argv[i+3])); PyTuple_SetItem(pArgs, i, pValue); } pValue = PyObject_CallObject(pFunc, pArgs); printf("Result of call: %ld\n", PyInt_AsLong(pValue)); Py_DECREF(pArgs); Py_DECREF(pValue); Py_DECREF(pFunc); Py_DECREF(pModule); Py_Finalize(); return 0; }