Estoy tratando de insertar un pitón en mi proyecto favorito. He reducido mi problema con el siguiente código:(Python C API) PyRun_StringFlags ¿faltan funciones integradas?
#include <Python.h>
#include "iostream"
int main(int argc, char *argv[])
{
Py_Initialize();
PyObject *globals = Py_BuildValue("{}");
PyObject *locals = Py_BuildValue("{}");
PyObject *string_result = PyRun_StringFlags(
"a=5\n"
"s='hello'\n"
"d=dict()\n"
,
Py_file_input, globals, locals, NULL);
if (PyErr_Occurred()) {PyErr_Print();PyErr_Clear();return 1;}
return 0;
}
(. Yo sé que no soy la limpieza de todas las referencias Este es un ejemplo.)
puede ser compilado por
c++ $(python-config --includes) $(python-config --libs) test.cpp -o test
Si lo ejecuto me sale el siguiente error:
$ ./test
Traceback (most recent call last):
File "<string>", line 3, in <module>
NameError: name 'dict' is not defined
parece las funciones de la orden interna no se cargan. Tampoco puedo import
nada. Me da que __import__
falta. ¿Cómo puedo cargar los módulos faltantes o lo que sea que me falta?
Gracias.
Gracias! 'PyEval_GetBuiltins' era exactamente lo que necesitaba. Simplemente no sabía cómo encontrarlo. – Simon