Подтвердить что ты не робот

Ссылка на сборку "импорт" Python при вызове из IronPython в С#

Я все-таки готов, когда дело дойдет до IronPython. Мне нужно вызвать py script с веб-сайта ASP.NET и иметь следующий код:

var ipy = IronPython.Hosting.Python.CreateRuntime();
dynamic test = ipy.UseFile(Server.MapPath(@"~\python\test.py"));
test.DoWork();

Версия IronPython, которую я использую, - 2.7.

Третий файл python, который мне нужно вызвать, имеет следующие директивы импорта:

import sys
from array import *
from subprocess import *

Я получаю сообщение об ошибке "Без модуля подпроцессом". Я скопировал файл subprocess.py из каталога Lib для установки IronPython, но я предполагаю, что мне нужно связать его с кодом С#?

Спасибо.

EDIT:

Я нашел решение:

ScriptEngine scriptEngine = Python.CreateEngine();

var sp = scriptEngine.GetSearchPaths();
sp.Add(Server.MapPath(@"~\python\lib"));
scriptEngine.SetSearchPaths(sp);

var scope = scriptEngine.Runtime.ExecuteFile(Server.MapPath(@"~\python\test.py"));

Если у кого есть какие-либо комментарии/улучшения, пожалуйста, не стесняйтесь разрабатывать видение, поскольку я нахожусь в новой среде со всем этим малярией Python/IronPython.

4b9b3361

Ответ 1

Альтернативный способ сделать это:

dynamic sys = scriptEngine.ImportModule("sys");            
sys.path.append(somePath);