我按照他们的指示为IronPython安装了Enthought的NumPy implementation。
一切似乎都有效,包括import numpy
和import scipy
,但在IronPython程序中使用这些语句会导致以下异常:
A first chance exception of type 'System.Collections.Generic.KeyNotFoundException' occurred in IronPython.dll
A first chance exception of type 'System.MissingMemberException' occurred in Microsoft.Dynamic.dll
A first chance exception of type 'System.MissingMemberException' occurred in IronPython.dll
A first chance exception of type 'IronPython.Runtime.Exceptions.TypeErrorException' occurred in Snippets.debug.scripting
如何修复这些例外?
答案 0 :(得分:0)
我不担心他们,我怀疑他们无论如何都可以被删除。这些都映射到Python异常,这意味着他们可能需要保持与CPython的兼容性。在CPython中,异常很快(比.NET快几个数量级),因此它们在Python代码中比在C#中更常用。
IronPython通常使用.NET异常机制来表示Python异常,这可能会导致某些代码出现大幅减速。 2.7添加一个“轻量级异常”机制,但它没有被一贯地使用(兼容性比现在的性能更重要,但我强烈考虑拉取请求)。抛出这些异常的一些代码可能会被修改为使用轻量级异常。