#.net-core #ironpython
Вопрос:
var engine = Python.CreateEngine();
var scope = engine.CreateScope();
var source = engine.CreateScriptSourceFromString(filePath, SourceCodeKind.File);
var compiled = source.Compile();
var result = source.Execute(scope);
Ошибка, которую я получаю, находится в исходном коде.Скомпилировать()
at Microsoft.Scripting.Hosting.ErrorListenerProxySink.Add(SourceUnit sourceUnit, String message, SourceSpan span, Int32 errorCode, Severity severity)
at IronPython.Compiler.Parser.ReportSyntaxError(Int32 start, Int32 end, String message, Int32 errorCode)
at IronPython.Compiler.Parser.ReportSyntaxError(Token t, IndexSpan span, Int32 errorCode, Boolean allowIncomplete)
at IronPython.Compiler.Parser.ReportSyntaxError(TokenWithSpan t, Int32 errorCode)
at IronPython.Compiler.Parser.EatNewLine()
at IronPython.Compiler.Parser.ParseSimpleStmt()
at IronPython.Compiler.Parser.ParseStmt()
at IronPython.Compiler.Parser.ParseFileWorker(Boolean makeModule, Boolean returnValue)
at IronPython.Compiler.Parser.ParseFile(Boolean makeModule, Boolean returnValue)
at IronPython.Runtime.PythonContext.ParseAndBindAst(CompilerContext context)
at IronPython.Runtime.PythonContext.CompilePythonCode(SourceUnit sourceUnit, CompilerOptions options, ErrorSink errorSink)
at IronPython.Runtime.PythonContext.CompileSourceCode(SourceUnit sourceUnit, CompilerOptions options, ErrorSink errorSink)
at Microsoft.Scripting.SourceUnit.Compile(CompilerOptions options, ErrorSink errorSink)
at Microsoft.Scripting.SourceUnit.Compile(ErrorSink errorSink)
at Microsoft.Scripting.Hosting.ScriptSource.CompileInternal(CompilerOptions compilerOptions, ErrorListener errorListener)
at Microsoft.Scripting.Hosting.ScriptSource.Compile()
at ReducedFareSystem.API.Helper.PythonScript.RunFromString() in PythonScript.cs:line 31
Мой скрипт на Python предназначен для запуска с вводом 0 параметров и генерирует PDF-файл.
Я запустил свой скрипт на Python, и он отлично работает из командной строки.
Комментарии:
1. у кого-нибудь есть какие-нибудь соображения?
Ответ №1:
Я уже запускал несколько сценариев на python раньше, и мне не нужны были ScriptScope и компиляция для выполнения моего сценария.
Microsoft.Scripting.Hosting.ScriptEngine pythonEngine = IronPython.Hosting.Python.CreateEngine();
Microsoft.Scripting.Hosting.ScriptSource pythonScript = pythonEngine.CreateScriptSourceFromFile("pathtofile.py");
pythonScript.Execute();
Попробуйте вот так, может быть, это сработает без каких-либо ошибок?