2012-06-30 18 views
7

Actualmente estoy trabajando en una pequeña aplicación científica C++ Qt 4.8 (y 5.0 cuando se lanzará), y me gustaría saber si es posible incrustar Python + Numpy + Maptplotlib (y tener una aplicación portátil incluso para personas sin Python instalado) en una aplicación C++ Qt para hacer bonitos gráficos dentro de mi aplicación?¿Incrustar Python/Numpy/Matplotlib en una aplicación C++ Qt?

¿Hay algún tutorial/ejemplo disponible de tal cosa?

Muchas gracias.

P.S. : no es un problema para mí tener que generar archivos temporales, pero es importante que el usuario no tenga que tener instalado python.

+0

No es que lo haya visto, pero no hay demasiados pasos. –

Respuesta

8

La forma más común de lidiar con Python desde C++ es con Boost.Python, pero es posible seguir adelante sin ella.

Lo que debe recordar es que el "intérprete de Python" consta de dos partes: la DLL/SO Python y la stdlib de Python, las cuales deberá proporcionar. Las únicas cosas que una instalación de Python agrega es la configuración y un ejecutable que es solo una envoltura delgada alrededor de las otras tres partes.

Dado que no tiene una configuración, una vez que el interpreter is initialized tendrá que usar PySys_SetPath() para establecer sys.path para apuntar a la stdlib y cualquier paquete adicional. Desde allí puede usar el resto de la API C para manipular el intérprete como lo haría con una instalación nativa.

+0

Eso te da un intérprete de Python. Ahora por favor agregue cómo también proporcionar NumPy y Matplotlib. –

+0

Usted ... los coloca en un directorio y lo agrega a 'sys.path'. Esa parte no cambia. –

Cuestiones relacionadas