tags:

views:

721

answers:

2

Hi all,

Consider the code below:

ScriptRuntimeSetup setup = Python.CreateRuntimeSetup(null);
ScriptRuntime runtime = new ScriptRuntime(setup);
ScriptEngine engine = Python.GetEngine(runtime);
ScriptScope scope = engine.CreateScope();

scope.SetVariable("message", "Hello, world!");
string script = @"print message";
ScriptSource source = scope.Engine.CreateScriptSourceFromString(script, SourceCodeKind.Statements);
source.Execute();

This code yields the following exception:

Microsoft.Scripting.Runtime.UnboundNameException was unhandled Message="name 'message' is not defined"

What am I missing?

+4  A: 

It should be "source.Execute(scope);" instead of "source.Execute();"

+1  A: 

Found this: A 3 minute guide to embedding IronPython in a C# application.

Nick