[IronPython] Access to current Python engine in C# (Silverlight)

Michael Foord fuzzyman at voidspace.org.uk
Sat May 9 15:15:30 CEST 2009


Hello guys,

I have a second use case for embedding IronPython in Silverlight. This 
is actually a dynamic application with a C# component that needs to 
programattically build a Python module.

Again I have the same problem - imports in Python code fail. I would 
have expected that accessing the current runtime and fetching a Python 
engine would fetch the current Python engine, with the browser host 
correctly setup. Unfortunately that seems not to be the case. Can anyone 
spot problems with the following code:


using Microsoft.Scripting.Silverlight;
using IronPython;
using IronPython.Hosting;
using Microsoft.Scripting;
using Microsoft.Scripting.Hosting;

namespace EmbeddedSLModule
{
    public class EmbeddedSLModule
    {
        private static string source = @"
import something
";
        public static ScriptScope GetModule(){
            ScriptRuntime runtime = DynamicApplication.Current.Runtime;
            ScriptEngine engine = runtime.GetEngine("Python");
            ScriptScope scope = engine.CreateScope();
            ScriptSource script = 
engine.CreateScriptSourceFromString(source, SourceCodeKind.Statements);
            script.Execute(scope);

            return scope;

        }
    }
}


It works fine for code that doesn't import anything - but imports from 
within the xap file fail.

Thanks

Michael Foord

-- 
http://www.ironpythoninaction.com/
http://www.voidspace.org.uk/blog





More information about the Ironpython-users mailing list