[IronPython] Calling a Python function (compiled into an assembly) from C# using delegates.

Michael Foord fuzzyman at voidspace.org.uk
Wed Jan 21 08:20:36 PST 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 Users mailing list