[IronPython] Calling a Python function (compiled into an assembly) from C# using delegates.
Michael Foord
fuzzyman at voidspace.org.uk
Wed Jan 21 17:20:36 CET 2009
Dody Gunawinata wrote:
> string cmd = @"from xxx import yy";
>
> eng.CreateScriptSourceFromString(cmd).Execute(--fill in default scope
> here--)
It will need to be:
eng.CreateScriptSourceFromString(cmd,
SourceCodeKind.Statements).Execute(scope)
But I'm pretty sure he will also need to use a different API for loading
the assembly, assuming it is from compiled IronPython code rather than
just an ordinary .NET assembly.
Michael
>
> //then go one fetching the function
>
> On Wed, Jan 21, 2009 at 6:11 PM, Renaud Durand <neraun at gmail.com
> <mailto:neraun at gmail.com>> wrote:
>
> That is the point. I don't want to do that from a file but from an
> Assembly (dll).
>
> 2009/1/21 Dino Viehland <dinov at microsoft.com
> <mailto:dinov at microsoft.com>>
>
> You need to do:
>
>
>
> eng.ExecuteFile('myfile.py', scope);
>
>
>
> *From:* users-bounces at lists.ironpython.com
> <mailto:users-bounces at lists.ironpython.com>
> [mailto:users-bounces at lists.ironpython.com
> <mailto:users-bounces at lists.ironpython.com>] *On Behalf Of
> *Renaud Durand
> *Sent:* Wednesday, January 21, 2009 7:45 AM
> *To:* dody at nomadlife.org <mailto:dody at nomadlife.org>;
> Discussion of IronPython
> *Subject:* Re: [IronPython] Calling a Python function
> (compiled into an assembly) from C# using delegates.
>
>
>
> Ok, but how ?
>
> 2009/1/21 Dody Gunawinata <empirebuilder at gmail.com
> <mailto:empirebuilder at gmail.com>>
>
> I think you have to import the function - loading the assembly
> alone is not enough.
>
> On Wed, Jan 21, 2009 at 5:17 PM, Renaud Durand
> <renaud.durand.it <http://renaud.durand.it>@gmail.com
> <http://gmail.com>> wrote:
>
> Hi again,
>
> I'm trying to call a python function from C#. I found out
> through a tutorial how to do it from
> a Python source file but I would like to do it from a
> compiled assembly. Some elements are missing.
> I think it is something like below but this does not work:
>
> eng = Python.CreateEngine()
> Assembly interpreter =
> Assembly.Load("interpreter");
> eng.runtime.LoadAssembly(interpreter);
>
> ScriptScope scope = eng.CreateScope();
>
> //Get the interpretMapping function
> Func<string, object> interpretMapping;
> interpretMapping =
> scope.GetVariable<Func<string, object>>("interpretMapping");
> ObjectOperations ops = eng.Operations;
>
> //Get the interpItem returned by function.
> object item =
> interpretMapping("649AC0165011B1E8F726AC54C911000000000000000000000000000000000000");
> //Get the display Method
> object method = ops.GetMember(item, "display");
> ops.Call(method);
>
> Thank you... Again :-)
>
> --
> Renaud Durand
> EPITA Student
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com <mailto:Users at lists.ironpython.com>
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
>
>
>
> --
> nomadlife.org <http://nomadlife.org>
>
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com <mailto:Users at lists.ironpython.com>
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
>
>
>
> --
> Renaud Durand
>
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com <mailto:Users at lists.ironpython.com>
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
>
>
>
> --
> Renaud Durand
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com <mailto:Users at lists.ironpython.com>
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
>
>
>
> --
> nomadlife.org <http://nomadlife.org>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
More information about the Ironpython-users
mailing list