状況
ホストされた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スクリプトをインポートするにはどうすればよいですか?