C# IronPython系统。\u找不到getframe
我目前正在用C语言构建一个程序,它将调用提供的python脚本文件中的函数。C# IronPython系统。\u找不到getframe,c#,.net,ironpython,C#,.net,Ironpython,我目前正在用C语言构建一个程序,它将调用提供的python脚本文件中的函数。 其中一些脚本文件在sys中调用\u getframe(),从而导致错误: System.MissingMemberException:“模块”对象没有属性 “\u getframe” (因为IronPython在默认情况下没有激活\u getframe。) 我在谷歌上搜索了很多次,发现通过提供-X:Frames作为命令行选项,可以在ipy.exe中激活它,但是这并不能解决我的问题,因为我没有直接使用ipy.exe来执行
其中一些脚本文件在
sys
中调用\u getframe()
,从而导致错误:
System.MissingMemberException:“模块”对象没有属性
“\u getframe”
(因为IronPython在默认情况下没有激活\u getframe
。)
我在谷歌上搜索了很多次,发现通过提供-X:Frames
作为命令行选项,可以在ipy.exe
中激活它,但是这并不能解决我的问题,因为我没有直接使用ipy.exe
来执行python代码
在他们提到使用命令行选项从源代码重建IronPython时,我下载了源文件,但不知道如何使用这些选项构建它。他们还提到,这些选项在官方安装程序中,我已经运行了几次安装程序exe,但没有看到这些选项 创建PythonEngine时,可以传递选项字典;您只需将字典中的“Frames”和/或“FullFrames”键设置为
true
:
var options = new Dictionary<string, object>();
options["Frames"] = true;
options["FullFrames"] = true;
ScriptEngine engine = Python.CreateEngine(options);
var options=newdictionary();
选项[“帧”]=true;
选项[“完整帧”]=true;
ScriptEngine=Python.CreateEngine(选项);
如果您不想要完整帧,只需将其保留或将其设置为
false
稍微超出问题的范围,但这意味着任何其他人都可以通过直接使用ipy.exe解释器调用Python脚本来获得此错误
您只需添加参数-X:FullFrames
。例如,调用脚本,如
ipy.exe -X:FullFrames script.py