对于 IronPython,我完全是个菜鸟。我需要从 ASP.NET 网站调用 py 脚本,并具有以下代码:
var ipy = IronPython.Hosting.Python.CreateRuntime();
dynamic test = ipy.UseFile(Server.MapPath(@"~\python\test.py"));
test.DoWork();
我使用的 IronPython 版本是 2.7。
我需要调用的第 3 方 python 文件具有以下导入指令:
import sys
from array import *
from subprocess import *
我收到错误“没有名为子进程的模块”。我已从 IronPython 安装 Lib 目录复制了 subprocess.py 文件,但我认为我需要在 C# 代码中链接到它?
Thanks.
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 的胡言乱语处于新的领域。
执行此操作的另一种方法:
dynamic sys = scriptEngine.ImportModule("sys");
sys.path.append(somePath);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)