[Ironpython-users] embedding and compiling

Peter Schwalm ps at peter-schwalm.de
Mon Jan 7 01:37:07 CET 2013


Hello,

I could figure it out myself now, not for a service yet, but for a c# 
console program. If anybody is interested here is the code snippet:

     class Program
     {
         static int Main(string[] args)
         {
             int rv = 0;
             // load the dll that results from ipy-compilation
             string AssemblyName = "outputMgrSvc1";
             Assembly assembly = Assembly.Load(AssemblyName);
             Dictionary<string, object> options = new Dictionary<string, 
object>();
             options["FullFrames"] = true;
             options["Frames"] = true;
             options["Tracing"] = true;
             ScriptRuntime runtime = Python.CreateRuntime(options);
             ScriptEngine engine = runtime.GetEngine("py");
             runtime.LoadAssembly(assembly);

             // initialize the script module
             ScriptScope scope = engine.CreateScope();
             string sourceString = @"from outputMgrSvc1 import *";
             ScriptSource source = 
engine.CreateScriptSourceFromString(sourceString,
                 Microsoft.Scripting.SourceCodeKind.Statements);
             try
             {
                 var x = source.Execute(scope);
             }
             catch (IronPython.Runtime.Exceptions.SystemExitException exc)
             {
                 object other;
                 rv = exc.GetExitCode(out other);
                 return rv;
             }

             // execute main procedure of script
             ObjectOperations ops = engine.Operations;
             dynamic names = scope.GetVariableNames();   // look at 
module data/procs
             dynamic proc = scope.GetVariable("scriptMain");
             try
             {
                 rv = proc();
             }
             catch (IronPython.Runtime.Exceptions.SystemExitException exc)
             {
                 object other;
                 rv = exc.GetExitCode(out other);
             }
             return rv;
         }
     }

Thank you
Peter

Am 04.01.2013 16:04, schrieb Peter Schwalm:
> Hello,
> I want to use the embedding feature of ipy for implementing an ipy 
> program as a windows service. I hope I can benefit from the good 
> support of Visual Studio and C# for the installation of services 
> (installUtil.exe).
>
> My question is: is it possible to use pyc-compiled programs with the 
> embedding features?
>
> My plan is to code like this
>
>     using IronPython.Hosting;
>     using IronPython.Runtime;
>     using Microsoft.Scripting.Hosting;
>     ...
>
>     ipyRt = Python.CreateRuntime()
>     dynamic testPy = ipyRt.UseFile("program....py");
>     ...
>     testPy.function()
>
> Is it possible to use compiled modules instead of "program....py" with 
> .UseFile?
>
> Thanks in advance
> Peter
>
> _______________________________________________
> Ironpython-users mailing list
> Ironpython-users at python.org
> http://mail.python.org/mailman/listinfo/ironpython-users
>



More information about the Ironpython-users mailing list