2012-04-05 141 views
0

我按照IronPython的说明安装了Enthought的NumPy implementation非致命IronPython NumPy异常

似乎一切工作,包括import numpyimport 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

看起来它可能是我的IronPython版本:2.7.2.1,因为numpy是为特定的ipy版本构建的。 – 2012-04-05 21:55:22

+0

我已经降级到IronPython 2.7,但是在VS2011中抛出了相同的异常并且启动需要10秒。太长了。 – 2012-04-06 09:06:54

回答

0

我不担心他们,我怀疑他们可以被删除。这些都映射到Python异常,这意味着它们可能需要保持与CPython的兼容性。在CPython中,异常很快(比.NET快两个数量级),所以它们在Python代码中比在C#中更常用。

IronPython通常使用.NET异常机制来表示Python异常,这可能会导致某些代码中的巨大减速。 2.7添加一个“轻量级的异常”机制,但它并没有被一贯使用(兼容性比现在的性能更重要,但我会强烈地考虑一个pull请求)。有些引发这些异常的代码可能会被修改为使用轻量级异常。

+0

:(这太糟糕了,这是一个时间杀手等待IronPython运行一个使用numpy的10行程序的时间。 – 2012-04-07 15:24:18