#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <limits.h>
#include <Python.h>

PyObject *spam_system(PyObject *selfPyObject *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_systemMETH_VARARGS,
                "Execute a shell command."},
        {NULLNULL0NULL}        /* Sentinel */
};

int main(int argvchar **argcchar **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();
}