Py_Initialize does not need to find the Python interpreter, because it is (part of) the Python interpreter! If you can call Py_Initialize, that means that you have made the Python interpreter part of your own program, so there is nothing more to find.
(If you linked it as a dynamic library, there is the issue of how dynamic libraries are found at runtime, but that is not specific to Python.)
Executing stuff on another computer is a completely different problem from embedding the interpreter.
I am writing a c++ executable which can call python interface. However, I don't know how to make this executable program find the python interpreter and run it on other people's computers. In other words, in what order does Py_Initialize() find the local python interpreter.
How does the Py_Initialize() function find the python interpreter