我尝试使用IronPython获取表达式的结果。以下代码按预期工作:
var e = Python.CreateEngine(AppDomain.CurrentDomain);
var source = e.CreateScriptSourceFromString("1 + 2");
var compiledCode = source.Compile(new PythonCompilerOptions());
var result = compiledCode.Execute(e.CreateScope()); // result = 3
执行此代码后result
包含3。
让我们更改代码,使表达式来自文件:
var e = Python.CreateEngine(AppDomain.CurrentDomain);
var source = e.CreateScriptSourceFromFile(@"D:\!Scripts\Test.py");
var compiledCode = source.Compile(new PythonCompilerOptions());
var result = compiledCode.Execute(e.CreateScope());
该文件的内容为1 + 2
。
执行result
后为空。
为什么呢?怎么了?
解决方案可能是加载文件的内容并使用CreateScriptSourceFromString
但是......不...