情况
托管 IronPython 允许开发人员将参数设置到脚本中。每次创建 IPy 引擎对象时,我都会设置这样一个参数(ParamName),但是当我尝试导入使用我的自定义参数的 python 模块时,我得到一个异常消息“全局名称'ParamName'不是定义”。
代码示例
class PythonScriptingEngine
{
private ScriptEngine pyEngine;
private ScriptScope pyScope;
public PythonScriptingEngine()
{
pyEngine = Python.CreateEngine();
pyScope = pyEngine.CreateScope();
}
public object Run(string script)
{
ScriptSource source = pyEngine.CreateScriptSourceFromString(script);
CompiledCode compiled = source.Compile();
return compiled.Execute(pyScope);
}
public void SetParameter(string name, int value)
{
pyScope.SetVariable(name, value);
}
}
// execution
var engine = new PythonScriptingEngine();
engine.SetParameter("ParamName", 10);
engine.Run(@"import SampleScriptWithParamName");
问题
这种情况有什么解决方法吗?如何导入使用自定义参数的 python 脚本?