Lo que quiero hacer es opuesto a de lo que la mayoría de la gente quiere hacer: Tengo una biblioteca escrita en Python, y quiero que esté disponible para C (y posiblemente otros idiomas) .Enlazar una biblioteca de Python TO C
sé que la respuesta típica a esto es usar la biblioteca de Python para C, es decir:
#include <Python.h>
int
main(int argc, char *argv[])
{
Py_Initialize();
PyRun_SimpleString("from time import time,ctime\n"
"print 'Today is',ctime(time())\n");
Py_Finalize();
return 0;
}
(fuente: http://docs.python.org/extending/embedding.html#very-high-level-embedding)
Sin embargo, esto parece menos que óptimo para mí:
- es feo
- es sólo para C
Lo que yo quiero, en cambio, es una manera de obligar a mi biblioteca montón de idiomas, incluyendo C. no me importa acerca de la generación automática de envoltorio: mi biblioteca es bastante simple, por lo que puede escribir código de unión.
Por el momento, la única solución que se me ocurrió es usar código similar al anterior para vincular mi biblioteca a C. Luego use SWIG para vincular la biblioteca C a otros idiomas.
¿Hay uno mejor?
Bueno, no necesito nada tan elegante (al menos ahora) como una biblioteca que se ejecuta como daemon. Así que creo que iré escribiendo manualmente una biblioteca de C que se conecta con la de python; luego haré enlaces usando SWIG a otros idiomas. – boyska