2012-04-05 62 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