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 ответа:
Вы попали в основное ограничение IronPython - он не поддерживает C-API CPython. Следовательно, вам нужно использовать pythonnet:
Https://github.com/pythonnet/pythonnet
Вы можете попробовать чистую реализацию python numpy:
"multiarray" - это a .pyd файл, и если кто-то не может исправить меня, похоже, что они не поддерживаются IronPython (Как я могу импортировать a .Модуль PYD в Айронпитоне?).