Я пытаюсь написать код для IronPython и numpy, который вызывает сборку .NET.
Информация о версии:
NumPy-2.0.0-1
SciPy-1.0.0-2
IronPython 2.7.1
Я установил scipy и numpy в соответствии с инструкциями, приведенными здесь:
http://www.enthought.com/repo/.iron/
Когда я пытаюсь запустить ipy64.exe, я получаю следующее:
Failed while initializing NpyCoreApi: BadImageFormatException:An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000
B)
NumpyDotNet stack trace:
at NumpyDotNet.NpyCoreApi.GetNativeTypeInfo(Int32& intSize, Int32& longsize, Int32& longLongSize, Int32& longDoubleSize)
at NumpyDotNet.NpyCoreApi..cctor()
Все работает с ipy.exe. Текущая версия numpy для IronPython не совместима с 64-битной версией?
Основная проблема, которую я изучаю (может быть связана или не связана с вышеупомянутой), заключается в вызове метода сборки .NET, для которого в качестве аргумента требуется System.Int64. Нативный Python int работает нормально, но при вызове с numpy.int32 (под ipy.exe) неявное приведение завершается неудачно с:
E
======================================================================
ERROR: data_type_tests
System.Array[Int64](listValues)
TypeError: expected Int64, got numpy.int32
Код, который я выполняю:
values = array([1,2,3,4,5])
listValues = list(values);
System.Array[Int64](listValues)
Если я составлю список напрямую, то есть значения = [1,2,3,4,5]
тогда вышеописанное работает.
Какие-либо предложения по преобразованию массива numpy в System.Array [Int64] под 32-битным или комментарии о состоянии поддержки numpy 64-бит в IronPython?