speed payton language entre developing compiler comparacion c++ python embedded-language

payton - Llamar a Python desde un programa de c++ para su distribución



python developing (4)

Me gustaría llamar a los archivos de script python desde mi programa c ++.

No estoy seguro de que las personas a las que distribuiré tendrán instalado Python.

Básicamente estoy buscando un archivo .lib que pueda usar que tenga una licencia de distribución similar a Apache.


Boost es probablemente la mejor opción, sin embargo, si quieres algo más independiente, y si es para Windows (lo que parece factible dado que son las personas menos propensas a tener instalado Python), puedes usar py2exe para crea una DLL con los puntos de entrada adecuados para los objetos COM. A continuación, puede interactuar con la biblioteca a través de COM. (Obviamente esto no es del todo útil como una solución multiplataforma).


La incorporación del intérprete de Python dentro de su aplicación C ++ le permitirá ejecutar programas de Python utilizando su aplicación para ejecutar scripts de Python. También hará que sea más fácil para esas secuencias de comandos llamar a las funciones de C ++ en su aplicación. Si esto es lo que desea, entonces la biblioteca de Boost mencionada anteriormente puede ser lo que desea para que sea más fácil crear el enlace. En el pasado, he usado SWIG para generar interfaces de Python con código C ++. No quedó claro a partir de su pregunta si quería que los scripts de Python llamaran a su programa C ++ o si simplemente deseaba que el C ++ llamara a Python.

Muchas de las funciones de Python utilizan módulos que no están integrados en el intérprete de Python. Si sus scripts de Python llaman a estas funciones, necesitará que sus usuarios instalen Python o que incluyan los archivos de tiempo de ejecución de python con su aplicación. Dependerá de qué módulos importe en sus scripts de Python.


Boost tiene una biblioteca de interfaz de python que podría ayudarte.

Boost.Python


Me gustaría llamar a los archivos de script python desde mi programa c ++.

Esto significa que desea incrustar Python en su aplicación C ++. Como se menciona en Incrustar Python en otra aplicación :

Incrustar Python es similar a extenderlo, pero no del todo. La diferencia es que cuando extiendes Python, el programa principal de la aplicación sigue siendo el intérprete de Python, mientras que si incorporas Python, el programa principal puede no tener nada que ver con Python. Algunas partes de la aplicación llaman ocasionalmente al intérprete de Python. ejecutar un código Python

Le sugiero que primero vaya a Incrustar Python en Otra aplicación . A continuación, consulte los siguientes ejemplos

  1. Incrustar Python en C / C ++: Parte I

  2. Incrustar Python en C / C ++: Parte II

  3. Incrustar Python en aplicaciones multiproceso C / C ++

Si te gusta Boost.Python , puedes visitar los siguientes enlaces:

  1. Incrustar Python con Boost.Python Parte 1