IronPython не удалось запустить скрипт, который импортирует numpy


Отказ от ответственности-я не знаком с Python. Я разработчик C#, который написал приложение для выполнения сценариев Python (написанных другими) с использованием IronPython. Эти скрипты до сих пор были необходимы только для использования import math, но один из наших пользователей попросил приложение для поддержки Numpy.

У меня установлены numpy на моем компьютере (с помощью библиотеки numpy-1.9.2-с Win32-superpack-вместо python2.7.exe ' файл), который создал папку numpy под Libsite-packages. Я написал двухстрочный скрипт на Python чтобы проверить, что Numpy доступен: -

import numpy as np
x = np.array([1,2])

Я запускаю скрипт из C#: -

var engine = Python.CreateEngine();
engine.SetSearchPaths(new Collection<string>(new[]
{
    @"C:Python27", 
    @"C:Python27DLLs", 
    @"C:Python27Lib", 
    @"C:Python27Libsite-packages", 
    @"C:Python27Libsite-packagesnumpy",
    @"C:Python27Libsite-packagesnumpycore"
}));
var scope = engine.CreateScope();
var scriptSource = engine.CreateScriptSourceFromString(
    _myPythonScript, 
    SourceCodeKind.Statements);
scriptSource.Execute(scope);

Несмотря на установку всех этих путей поиска, последняя строка выдает ImportException:-

Не удается импортировать multiarray из numpy.ядро

Обратите внимание, чтоэта так статья похожа, но не помогла - первый ответ упоминает мтрэнд.dll-файл, которого у меня, кажется, нет.

Что я упускаю?

2 2

2 ответа:

Вы попали в основное ограничение IronPython - он не поддерживает C-API CPython. Следовательно, вам нужно использовать pythonnet:

Https://github.com/pythonnet/pythonnet

Вы можете попробовать чистую реализацию python numpy:

Https://github.com/wadetb/tinynumpy

"multiarray" - это a .pyd файл, и если кто-то не может исправить меня, похоже, что они не поддерживаются IronPython (Как я могу импортировать a .Модуль PYD в Айронпитоне?).