[IronPython] Using IronPython as an assembly in dotNET

Lukas Dubeda loocas at duber.cz
Thu Aug 13 19:14:58 CEST 2009


Hi there everyone,

I have a problem I can't seem to figure out.

I want to use IronPython as an assembly via dotNET, I managed to load it 
as an assembly and access various constructors, classes etc...

However, I have a problem with executing Python code from the host 
application. I'm using 3ds Max to load up the assembly via dotNET. The 
code looks like this:

Assembly = dotNetClass "System.Reflection.Assembly" -- loading the 
assembly class
Assembly.LoadFrom "C:\IronPython-2.0.1\IronPython.dll" -- loading IronPython

ironPythonHosting = dotNetClass "IronPython.Hosting.Python" -- loading 
the hosting class
pythonEngine = ironPythonHosting.CreateEngine() -- creating an engine

Now, when I execute:

pythonEngine.ExecuteFile("C:\\tst.py")

it runs smoothly and executes the tst.py and whatever Python code that's 
inside.

Now, I want to execute the code directly, not via a saved file. I tried 
this:

pythonEngine.Execute("print 'TEST'")

but it throws me an error:

-- Error occurred in anonymous codeblock; filename: ; position: 344
-- Runtime error: dotNet runtime exception: Late bound operations cannot 
be performed on types or methods for which ContainsGenericParameters is 
true.

Also, if I execute the Python code inside a file, is there a way to get 
the result/feedback from the code back to the host application? Via 
dotNET or IronPython? Or anyhow? So that I can write more complex tools 
that'd communicate with Pyhon code from within 3ds Max.

Thanks a lot in advance, cheers,

- Lukas Dubeda



More information about the Ironpython-users mailing list