Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

A hopefully simple example calling python from C using PyRun_File, and getting information returned to C via the globals/locals dictionary.

Code Block
#include <Python.h>
#include <stdio.h>
#include <stdint.h>
int main(int argc,char *argv[])
{
    FILE* file;
    Py_Initialize();
    PyObject* main_module = PyImport_AddModule("__main__");
    PyObject* main_dict = PyModule_GetDict(main_module);
    file = fopen("mypython.py","r");
    PyRun_File(file, "mypython.py",Py_file_input,main_dict,main_dict);
    printf("size %d\n",PyDict_Size(main_dict));
    PyObject* mybytes = PyDict_GetItemString(main_dict,"mybytes");
    printf("%p\n",mybytes);
    uint64_t* data = (uint64_t*)PyBytes_AsString(mybytes);
    printf("%d %d\n",data[0],data[1]);
    Py_Finalize();
    return 0;
}

...