¿Está confundido por el título? Me explico: hago ejecutar un script en Python, dentro de un proceso de .NET (mi C# aplicación de ser el anfitrión), utilizando IronPython:¿Cómo obtener la línea ofensiva cuando se usa IronPython con C# /. NET como host, en un error de tiempo de ejecución?
ScriptEngine python = Python.CreateEngine();
ScriptSource pyFromFileSource = python.CreateScriptSourceFromString(script);
CompiledCode pyFromFileCode = pyFromFileSource.Compile();
ScriptRuntime runtime = engine.Runtime;
ScriptScope scope = runtime.CreateScope(); //get a scope where we put in the stuff from the host
scope.SetVariable("lab", this); //allow usage of this class in the script
script.Execute(scope);
incluya la palabra clave se está ejecutando en un subproceso en segundo plano (utilizando el Task
clase). La secuencia de comandos contiene un error que hace que aumente IronPython.Runtime.Exceptionis.TypeErrorException
. Puedo ver esto y recibir el mensaje.
Pero, ¿cómo obtener la línea de script o el número de línea que causa la excepción?
Gracias por esta solución. Funciona muy bien! – Marcel
Funciona muy bien, gracias. Para cualquier otra persona que lo busque, 'PythonOps' está en' IronPython.Runtime.Operations'. –