I never got a reply to this. The C# code below throws an import error
and I want to know if this is my fault or a problem with the IronPython
/ Silverlight integration.
Michael
Michael Foord wrote:
Ha - dammit, no.
With Silverlight this still throws an ImportError when embedded Python
code executed from C# like this tries to import from the xap file. :-(
Michael
Michael Foord wrote:
Thanks to some help from William Reade, this code *seems* to work
fine. I need to try it from Silverlight and check the Python code it
contains is able to import:
using System;
using System.Collections.Generic;
using System.Text;
using IronPython.Hosting;
using IronPython.Runtime;
using IronPython.Runtime.Types;
using Microsoft.Scripting;
using Microsoft.Scripting.Hosting;
using Microsoft.Scripting.Runtime;
namespace ExecutePython
{
public class ExecutePython
{
static string code = @"
class Foo(object):
attribute = 'weeeee'
";
public static Scope CreateModule(CodeContext context)
{
PythonContext python = PythonContext.GetContext(context);
PythonDictionary globals = new PythonDictionary();
globals["__name__"] = "AModule";
Scope module = new Scope(globals);
SourceUnit script = python.CreateSnippet(code,
SourceCodeKind.Statements);
script.Execute(module);
return module;
}
}
}
All the best,
Michael
Michael Foord wrote:
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/
_______________________________________________
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com