Comstackndo python en una biblioteca compartida

Tengo un montón de código python que me gustaría “comstackr” en una biblioteca compartida con una interfaz C que se puede vincular con otros progtwigs C / c ++ y trabajar sin depender de demasiadas librerías (tal vez python y otras dlls, pero todos ellos deben ser incluidos en un directorio con la libreria final).

Realmente no quiero volver a escribir el código de Python en C ++ para esto. Por supuesto, puedo, pero sería mejor tener una biblioteca independiente que se pueda usar como un archivo DLL / lib.

He probado cython y quería comstackr python en C y luego simplemente comstackr código C en una dll, pero eso no parece funcionar todavía (no he podido hacer que funcione perfectamente). Y luego también probé bbfreeze, pero ¿admite bbfreeze crear un archivo .so? No pude averiguar cómo hacerlo. ¿Alguien sabe?

¿Conoces alguna otra opción que sea más sencilla? el código python solo necesita comstackrse una vez. Y lo mejor de todo sería si crea un único archivo .so, sin importar qué tan grande sea, simplemente funciona sin demasiadas dependencias.

    Puede usar Python como una biblioteca desde su aplicación C ++: se llama API de Python / C.

    La idea es que inicie su propio intérprete, luego cargue un script en él. Puede exponer sus objetos C ++ a través de variables globales o módulos dentro del intérprete de Python para que su código interactúe, puede ejecutar las funciones de Python directamente desde su código C ++.

    Ahora, entiendo que es posible que desee que sus scripts de Python estén incrustados dentro de la biblioteca compartida: esto no es necesariamente una tarea fácil, con la cadena de herramientas GNU tradicional. Existen múltiples técnicas para lograr esto, pero ninguna es oficial, y todas parecen ser demasiado complicadas en lugar de tener el script en un archivo externo.

    Si su objective es ocultar los scripts al usuario final, puede firmarlos o cifrarlos con una clave privada e incrustar la clave pública en su biblioteca, pero tenga en cuenta que cualquier persona con suficiente motivación puede recuperar la clave fácilmente. .

    Python está más preparado para funcionar al revés: su código se llama desde Python, la lógica general está en Python mientras que el problema específico (y el código crítico de rendimiento) se escribe en C / C ++.