I have two python files: mainfile.py and subfile.py
mainfile.py relies on some types in subfile.py.
mainfile.py looks something like this.
from subfile import *
my_variable = [1,2,3,4,5]
def do_something_with_subfile
#Do something with things in the subfile.
#Return something.
I'm attempting to load mainfile.py up in C# and get the value of my_varaible, but I'm having some difficulty finding resources that adequately describe the relationships between the methods I'm calling and I, admittedly, don't know a ton about Python.
Here's what I have written:
var engine = Python.CreateEngine();
//Set up the folder with my code and the folder with struct.py.
var searchPaths = engine.GetSearchPaths();
searchPaths.Add(@"C:\ACodeFolder");
searchPaths.Add(@"C:\tools\python\lib");
engine.SetSearchPaths(searchPaths);
//A couple of files.
var mainfile = @"C:\ACodeFolder\mainfile.py";
var subfile = @"C:\ACodeFolder\subfile.py";
var scope = engine.CreateScope();
var scriptSource = engine.CreateScriptSourceFromFile(subfile);
var compiledScript = scriptSource.Compile();
compiledScript.Execute(scope);
scriptSource = engine.CreateScriptSourceFromFile(mainfile);
compiledScript = scriptSource.Compile();
compiledScript.Execute(scope);
scriptSource = engine.CreateScriptSourceFromString("my_variable");
scriptSource.Compile();
var theValue = compiledScript.Execute(scope);
But when this executes, theValue is null.
I really have no idea what I'm doing. So the real question is:
How do I read the value of my_variable from mainfile.py? Tangentially, is there a good introductory resource for the methods available in the Python namespace and how to really interact between C# and Python?