[IronPython] Internal Assembly Dependency

Bakalar, Matthew (NIH/CIT) [C] bakalarmh at mail.nih.gov
Thu May 27 19:10:25 CEST 2010


In response to Lukas:
I copied all of the assemblies, along with the script, to one folder. I attempted to add a reference to MathNet.Iridium and received the following error:

>>> clr.AddReferenceByPartialName('MathNet.Iridium')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IOError: System.IO.IOException: Could not add reference to assembly MathNet.Irid
ium
   at Microsoft.Scripting.Actions.Calls.MethodCandidate.Caller.Call(Object[] arg
s, Boolean& shouldOptimize)
   at IronPython.Runtime.Types.BuiltinFunction.BuiltinFunctionCaller`2.Call1(Cal
lSite site, CodeContext context, TFuncType func, T0 arg0)
   at System.Dynamic.UpdateDelegates.UpdateAndExecute3[T0,T1,T2,TRet](CallSite s
ite, T0 arg0, T1 arg1, T2 arg2)
   at IronPython.Runtime.Types.BuiltinFunction.BuiltinFunctionCaller`2.Call1(Cal
lSite site, CodeContext context, TFuncType func, T0 arg0)
   at IronPython.Compiler.Ast.CallExpression.Invoke1Instruction.Run(InterpretedF
rame frame)
   at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)
   at Microsoft.Scripting.Interpreter.LightLambda.Run2[T0,T1,TRet](T0 arg0, T1 a
rg1)
   at IronPython.Compiler.PythonScriptCode.RunWorker(CodeContext ctx)
   at IronPython.Compiler.PythonScriptCode.Run(Scope scope)
   at IronPython.Hosting.PythonCommandLine.<>c__DisplayClass1.<RunOneInteraction
>b__0()

This leads me to believe IronPython is having trouble loading this particular assembly, but I cannot decode the error message. Have you ever seen this trace before?

In Response to David:
I tried the solution you suggested with no luck. The error message I receive is the same. I suspect that the hint I've provided above might lead us to a solution.

Thanks All,

Matthew Bakalar

From: Lukas Cenovsky [mailto:cenovsky at bakalari.cz]
Sent: Thursday, May 27, 2010 2:48 AM
To: Discussion of IronPython
Subject: Re: [IronPython] Internal Assembly Dependency

Bakalar, Matthew (NIH/CIT) [C] wrote:
Hello All,
I am new to IronPython, relatively new to C#, and new to this list. I have a C# assembly that I am attempting to access from IronPython. I am able to load the assembly using:
clr.AddReferenceToFileAndPath(mypath)
without any problems. I can then import the classes that reside within my assembly as well, create instances of these classes, and call certain methods on these instances. There are methods within this assembly that rely on a reference to another assembly (MathNet.Iridium). When I attempt to call these methods from my IronPython script, I receive the following error:
IOError: [Errno 2] Could not load file or assembly 'MathNet.Iridium, Version=2008.8.16.470, Culture=neutral, PublicKeyToken=c061a3ec32cc0c6f' or one of its dependencies. The system cannot find the file specified.
Now, I never added a reference to MathNet.Iridium in my script. However, I assumed that the C# assembly that I am calling directly was compiled with a reference to this other assembly, and that I would not have to explicitly add a reference. When I create a test assembly entirely in C# that calls the assembly I am attempting to call, and do not include a reference to the MathNet.Iridium assembly, I am able to execute the code without problems. Do I need to add a reference to the MathNet.Iridium assembly from within my IronPython script even though I don't intend to access it directly?
Thanks
Matthew Bakalar

First, try to copy all necessary assemblies to the folder with your script and use AddReference for all of them. If that works, you can experiment with assemblies in different folders.

Note, the path in AddReferenceToFileAndPath should be full path.

--
-- Lukáš
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20100527/9485abd4/attachment.html>


More information about the Ironpython-users mailing list