Soy un novato completo cuando se trata de IronPython. Tengo que llamar a un script py de un sitio web ASP.NET, y tienen el siguiente código:Hacer referencia a los ensamblados de "importación" de Python cuando se realiza una llamada desde IronPython en C#
var ipy = IronPython.Hosting.Python.CreateRuntime();
dynamic test = ipy.UseFile(Server.MapPath(@"~\python\test.py"));
test.DoWork();
La versión de IronPython que estoy usando es 2,7.
La tercera parte de archivos pitón Tengo que llamar tiene las siguientes directivas de importación:
import sys
from array import *
from subprocess import *
Estoy recibiendo el error "No hay ningún módulo llamado sub-proceso". He copiado el archivo subprocess.py del directorio Lib de instalación de IronPython, pero supongo que necesito vincularlo en el código C#.
Gracias.
EDIT:
he encontrado la solución:
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"));
Si alguien tiene alguna comentarios/mejoras no dude en elaborar ya que estoy en la nueva tierra con todo esto Python/IronPython Malarky.
Sólo una nota: también se podría hacer esto desde dentro de la secuencia de comandos de Python si se quería, por [modificando 'sys.path'] (http: // docs.python.org/install/index.html#inst-search-path). Además, es posible que desee publicar su solución como una respuesta y aceptarla, en lugar de mantenerla en el cuerpo de preguntas en sí. – Cameron
Gracias Cameron. Traté de publicarlo como respuesta, pero como soy un nuevo usuario, no pude hacerlo durante 8 horas. Estoy teniendo un problema nuevo que ahora intenta pasar argumentos ... – pfeds