2008-11-17 13 views
9

Quiero usar las bibliotecas nltk en C++.¿cómo uso las bibliotecas de Python en C++?

¿Existe un mecanismo/lenguaje de pegamento que pueda usar para hacer esto?

Motivo: No he hecho ninguna programación seria en C++ por un tiempo y quiero revisar los conceptos de PNL al mismo tiempo.

Gracias

Respuesta

12

También puede probar la biblioteca Boost.Python; que tiene this capability. Esta biblioteca se usa principalmente para exponer C++ a Python, pero se puede usar al revés.

+0

Gracias por un buen recurso. Resolvió varias tediosas horas de mí. ¿Hay algún ejemplo concreto sin impulso? –

1

no he intentado llamar directamente las funciones de Python desde C++, pero aquí están algunas ideas alternativas ...

En general, es más fácil llamar a código C++ de un lenguaje de alto nivel como Python que al revés. Si está interesado en este enfoque, puede crear una base de código C++ y acceder a ella desde Python. Puede usar directamente la API externa proporcionada por python [debe describirse en algún lugar en los documentos de Python] o usar una herramienta como SWIG para automatizar el proceso de envoltura de C++ a Python.

Dependiendo de cómo quiera usar la biblioteca, podría crear alternativamente scripts de Python a los que llame desde C++ con las funciones exec*.

15

Aunque llamar a C++ libs desde python es más normal, puede llamar a un módulo python desde C++ llamando básicamente al intepreter python y hacer que ejecute el origen python. Esto se llama embedding

Como alternativa, la biblioteca boost.python hace que sea muy fácil.

+0

incrustación doc se ha movido https://docs.python.org/2.7/extendido/embedding.html, he sugerido una edición. –

1

Pyrex se puede utilizar limpiamente para este propósito. Hay un example en la versión del código fuente.

Cuestiones relacionadas