[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