在C#中使用IronPython调用时引用Python"import"程序集

pfe*_*eds 18 python asp.net ironpython

对于IronPython,我是一个完整的菜鸟.我需要从ASP.NET网站调用py脚本,并具有以下代码:

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

我使用的IronPython版本是2.7.

我需要调用的第三方python文件具有以下import指令:

import sys
from array import *
from subprocess import *
Run Code Online (Sandbox Code Playgroud)

我收到错误"No module named subprocess".我已经从IronPython安装Lib目录中复制了subprocess.py文件,但我想我需要在C#代码中链接它?

谢谢.

编辑:

我找到了解决方案:

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"));
Run Code Online (Sandbox Code Playgroud)

如果有人有任何评论/改进,请随意详细说明,因为我已经开始使用所有这些Python/IronPython malarky了.

edv*_*dig 2

执行此操作的另一种方法:

dynamic sys = scriptEngine.ImportModule("sys");            
sys.path.append(somePath);
Run Code Online (Sandbox Code Playgroud)