¿Crear un PyObject * desde una función C?

Estoy incrustando Python en una biblioteca de C ++ que estoy haciendo. Me gustaría que los usuarios puedan pasar funciones C en forma de punteros de funciónPyObject* (fpFunc*)(PyObject*,PyObject*); para poder usar esas funciones en el Python incrustado.

Así que tengo un puntero de función y sé que es posible poner esta función como un método de módulo usando unaPyMethodDef struct y pasarlo aPy_InitModule("module", ModMethods); y así obtener unPyObject* module de la que puedo tomar funciones fácilmente.

Pero, lo que realmente agradecería es poder crear esta función sobre la marcha sin necesariamente recrear otro módulo cada vez.

He investigado los documentos de Python y algunos de los encabezados de Python para pensar en una forma hacky de hacerlo sin éxito real ... pero me pregunto si existe una forma más convencional de hacerlo.

De lo que entendí, cada función pertenece a un módulo, incluso__builtin__, así que supongo que necesitaría al menos un módulo.

¿Alguna idea sobre cómo lograr esto?

Respuestas a la pregunta(1)

Su respuesta a la pregunta