#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <limits.h>
#include <Python.h>
PyObject *spam_system(PyObject *self, PyObject *args) {
char *command;
int sts;
if (!PyArg_ParseTuple(args, "s", &command))
return NULL;
sts = system(command);
return Py_BuildValue("i", sts);
}
static PyMethodDef SpamMethods[] = {
{"system", spam_system, METH_VARARGS,
"Execute a shell command."},
{NULL, NULL, 0, NULL} /* Sentinel */
};
int main(int argv, char **argc, char **envp) {
//Initialise
setenv("PYTHONPATH", "/etc/init.d:.", 1);
Py_Initialize();
//Var decl
int false_argc=2;
char **false_argv=malloc(3);
PyObject *my_dict, *my_module,*load_module,*dict;
false_argv[2]=NULL;
false_argv[0]="python.py";
false_argv[1]="start";
//sparti
//On remplit le dictionnaire
my_dict=PyDict_New();
PyDict_SetItemString(my_dict, "key1",
Py_BuildValue("s", "this is a string numner one"));
PyDict_SetItemString(my_dict, "key2",
Py_BuildValue("i", 13));
PyDict_SetItemString(my_dict, "key3",
Py_BuildValue("(is)", 13, "this is a string"));
//On ajoute le module
//my_module = PyImport_AddModule("my_module");
//Un autre module
my_module=Py_InitModule("spam", SpamMethods);
PyModule_AddObject(my_module, "my_dict", my_dict);
load_module=Py_InitModule("testmodule", NULL);
printf("%d\n", PyCallable_Check(load_module));
printf("%d\n", PyCallable_Check(my_module));
//On lance la bebete
PyErr_Print();
}