I'm a complete noob when it comes to IronPython. I need to call a py script from an ASP.NET website, and have the following code:
var ipy = IronPython.Hosting.Python.CreateRuntime();
dynamic test = ipy.UseFile(Server.MapPath(@"~\python\test.py"));
test.DoWork();
The version of IronPython I'm using is 2.7.
The 3rd party python file I need to call has the following import directives:
import sys
from array import *
from subprocess import *
I'm receiving the error "No module named subprocess". I've copied the subprocess.py file from the IronPython installation Lib directory, but I assume I need to link to it in the C# code?
Thanks.
EDIT:
I found the solution:
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"));
If anyone has any comments/improvements please feel free to elaborate seeing as I'm in new ground with all this Python/IronPython malarky.
An alternate way of doing this:
dynamic sys = scriptEngine.ImportModule("sys");
sys.path.append(somePath);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With