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

Michael Foord fuzzyman at voidspace.org.uk
Sun May 17 17:27:14 CEST 2009


Jimmy - did you get a chance to look at this?

If the code shown below *genuinely* gets a reference to the current 
engine then shouldn't the search path be setup already?

Can you see what is wrong with the code below?

Thanks

Michael

Michael Foord wrote:
> 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