Here is a solution to embed the execution of your python module from within your C++ application. It’s not better or worst than forking/executing your python script through a system call, it just is a different way to do it. Whether it is best or not depend on your context and usage.
Some time ago I have coded a way to load python modules as plugins to a C++ application, here’s the interesting part.
Basically, you need to #include <Python.h>, then Py_Initialize() to start your python interpreter.
Then you do import sys, using : PyRun_SimpleString("import sys");, and you can load your plugin by doing PyRun_SimpleString('sys.path.append("path/to/my/module/")').
To exchange values between C++ and Python, things get harder, you have to to transform all your C++ objects into python objects (starting line 69 in my script).
Then you can call your function using PyObject_Call_Object(...), using all the python objects you created as arguments.
You get the return value, and transforms all those values in C++ objects. And don’t forget the memory management in all that!
To end your python interpreter, a simple call to Py_Finalize().
It really looks harder than it is really, but you have to be really careful doing this, because it could lead to leaks, security issues etc..