I’ve been looking around for some way to call python functions (using Python4Delphi) within my delphi code without direct need for TPythonEngine.ExecStrings execution.
My base idea is to load a module, for instance, example.py
looking like:
def DoExample(pStr: str) -> str:
pStr = "Example: " + pStr
return pStr
And call it like (disclaimer: example of behavior I’d like to have, not actual P4D behavior):
MyPythonEngine := TPythonEngine.Create(nil);
{necessary version, flags and LoadDll}
MyPythonModule := TPythonModule.Create(nil);
{necessary configs again}
MyImportedFunction := {Load the DoExample somehow and store it in this variable}
ResultOfMyImportedFunction := MyImportedFunction("This is an example"); {This should be Example: This is an example}
I could also achieve my goal by adapting the example.py
:
import sys
def DoExample(pStr: str) -> str:
pStr = "Example: " + pStr
return pStr
DoExample(sys.arv[1])
And call it like I would in cli, still need to get its result.
I’ve intensively read the Demos and didn’t find a reasonable answer to my problem. Also no documentation for further reading (or atleast I couldn’t find it).
tl;dr
I’d like load a python script, take one of its defined functions, call it within delphi and retrieve its result into a varaible.|
Thanks in Advance! Happy New Year.