4 main(int argc
, char *argv
[])
6 PyObject
*pName
, *pModule
, *pDict
, *pFunc
;
7 PyObject
*pArgs
, *pValue
;
11 fprintf(stderr
,"Usage: call pythonfile funcname [args]\n");
16 pName
= PyString_FromString(argv
[1]);
17 /* Error checking of pName left out */
19 pModule
= PyImport_Import(pName
);
22 if (pModule
!= NULL
) {
23 pFunc
= PyObject_GetAttrString(pModule
, argv
[2]);
24 /* pFunc is a new reference */
26 if (pFunc
&& PyCallable_Check(pFunc
)) {
27 pArgs
= PyTuple_New(argc
- 3);
28 for (i
= 0; i
< argc
- 3; ++i
) {
29 pValue
= PyInt_FromLong(atoi(argv
[i
+ 3]));
33 fprintf(stderr
, "Cannot convert argument\n");
36 /* pValue reference stolen here: */
37 PyTuple_SetItem(pArgs
, i
, pValue
);
39 pValue
= PyObject_CallObject(pFunc
, pArgs
);
42 printf("Result of call: %ld\n", PyInt_AsLong(pValue
));
49 fprintf(stderr
,"Call failed\n");
56 fprintf(stderr
, "Cannot find function \"%s\"\n", argv
[2]);
63 fprintf(stderr
, "Failed to load \"%s\"\n", argv
[1]);