Импорт numpy с использованием IronPython в С#

Я пытаюсь использовать функции модуля numpy в своем коде Python, который я запускаю в своем приложении С# в VS13.

Я делаю это, чтобы импортировать модуль:

ScriptEngine pyEngine = IronPython.Hosting.Python.CreateEngine();
ScriptScope pyScope = pyEngine.CreateScope();

pyEngine.Execute("import numpy", pyScope);

однако он говорит: «Нет модуля с именем numpy». Я искал решение и нашел это: «> Как установить numpy и scipy для Ironpython27? Старый метод не работает Используя ответ Нильстера, мне удалось установить numpy, и я могу использовать его, когда запускаю ipy из cmd. Однако я не знаю, как использовать его в моем приложении С# в VS. Я просматривал файлы и нашел

\IronPython 2.7\DLL\NumpyDotNet.dll

а также:

\IronPython 2.7\Lib\сайт-пакеты\numpy\

Как сделать так, чтобы мой код Python мог импортировать numpy?


person Kuczi    schedule 02.09.2016    source источник
comment
вы можете использовать pythonnet для этого.   -  person denfromufa    schedule 02.09.2016
comment
Где я могу найти подробную информацию о Python.Net и инструкции по его использованию в моем приложении C#. Я пытаюсь ссылаться на Python.Reference.dll, как предлагает этот сайт pythonnet.sourceforge.net/readme.html. Но не могу вызвать PythonEngine.Intialize().   -  person Kuczi    schedule 05.09.2016
comment
вы также можете собрать последнюю версию из исходного кода: github.com/pythonnet/pythonnet   -  person denfromufa    schedule 05.09.2016
comment
вот простая инструкция по использованию pythonnet из C#: github.com/pythonnet /pythonnet/blob/master/README.md   -  person denfromufa    schedule 05.09.2016
comment
Мне уже удалось установить PythonNet. Мне интересно, достаточно ли просто ссылки на Python.Runtime.dll в моем проекте. Также, когда я запускаю код, который вы мне прислали, я получаю сообщение об ошибке в этой строке dynamic b = np.array(new List‹float› {6, 5, 4}, Py.kw(dtype, np.int32)); TypeError: аргумент long() должен быть строкой или числом, а не '0. Однако самое главное, что мне нужно сделать, это иметь возможность просто запустить мой скрипт Python в моем приложении и передать ему аргументы. Не могли бы вы привести пример по этому поводу?   -  person Kuczi    schedule 06.09.2016
comment
Существует открытый вопрос о dynamic b = np.array(new List<float> { 6, 5, 4 }, Py.kw("dtype", np.int32)): github.com/pythonnet/pythonnet/issues/249   -  person denfromufa    schedule 06.09.2016
comment
Вам не нужен pythonnet, чтобы просто запускать скрипты python с переданными аргументами. Pythonnet используется для встраивания и расширения CPython.   -  person denfromufa    schedule 06.09.2016