I am getting a error every time I run my iron python script. I am using windows 11 ironpython 2.7.12 and python 3.10. this is the error I get
Unhandled exception. Microsoft.Scripting.SyntaxErrorException: unexpected token 'from'
at IronPython.Runtime.ThrowingErrorSink.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.ParsePrimary()
at IronPython.Compiler.Parser.ParsePower()
at IronPython.Compiler.Parser.ParseFactor()
at IronPython.Compiler.Parser.ParseExpr(Int32 precedence)
at IronPython.Compiler.Parser.ParseComparison()
at IronPython.Compiler.Parser.ParseNotTest()
at IronPython.Compiler.Parser.ParseAndTest()
at IronPython.Compiler.Parser.ParseOrTest()
at IronPython.Compiler.Parser.ParseExpression()
at IronPython.Compiler.Parser.ParseExpressionList(Boolean& trailingComma)
at IronPython.Compiler.Parser.ParseYieldExpression()
at IronPython.Compiler.Parser.ParseYieldStmt()
at IronPython.Compiler.Parser.ParseSmallStmt()
at IronPython.Compiler.Parser.ParseSimpleStmt()
at IronPython.Compiler.Parser.ParseStmt()
at IronPython.Compiler.Parser.ParseSuite()
at IronPython.Compiler.Parser.ParseIfStmtTest()
at IronPython.Compiler.Parser.ParseIfStmt()
at IronPython.Compiler.Parser.ParseStmt()
at IronPython.Compiler.Parser.ParseSuite()
at IronPython.Compiler.Parser.ParseLoopSuite()
at IronPython.Compiler.Parser.ParseForStmt()
at IronPython.Compiler.Parser.ParseStmt()
at IronPython.Compiler.Parser.ParseSuite()
at IronPython.Compiler.Parser.ParseIfStmtTest()
at IronPython.Compiler.Parser.ParseIfStmt()
at IronPython.Compiler.Parser.ParseStmt()
at IronPython.Compiler.Parser.ParseSuite()
at IronPython.Compiler.Parser.ParseClassOrFuncBody()
at IronPython.Compiler.Parser.ParseFuncDef()
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.GetScriptCode(SourceUnit sourceCode, String moduleName, ModuleOptions options, CompilationMode mode)
at IronPython.Runtime.PythonContext.GetScriptCode(SourceUnit sourceCode, String moduleName, ModuleOptions options)
at IronPython.Runtime.PythonContext.CompileModule(String fileName, String moduleName, SourceUnit sourceCode, ModuleOptions options, ScriptCode& scriptCode)
at IronPython.Runtime.PythonContext.CompileModule(String fileName, String moduleName, SourceUnit sourceCode, ModuleOptions options)
at IronPython.Runtime.Importer.LoadFromSourceUnit(CodeContext context, SourceUnit sourceCode, String name, String path)
at IronPython.Runtime.Importer.LoadModuleFromSource(CodeContext context, String name, String path)
at IronPython.Runtime.Importer.LoadFromDisk(CodeContext context, String name, String fullName, String str)
at IronPython.Runtime.Importer.ImportFromPathHook(CodeContext context, String name, String fullName, List path, Func`5 defaultLoader)
at IronPython.Runtime.Importer.ImportFromPath(CodeContext context, String name, String fullName, List path)
at IronPython.Runtime.Importer.ImportTopAbsolute(CodeContext context, String name)
at IronPython.Runtime.Importer.ImportModule(CodeContext context, Object globals, String modName, Boolean bottom, Int32 level)
at IronPython.Modules.Builtin.__import__(CodeContext context, String name, Object globals, Object locals, Object fromlist, Int32 level)
at Microsoft.Scripting.Interpreter.FuncCallInstruction`7.Run(InterpretedFrame frame)
at Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)
at Microsoft.Scripting.Interpreter.LightLambda.Run7[T0,T1,T2,T3,T4,T5,T6,TRet](T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6)
at System.Dynamic.UpdateDelegates.UpdateAndExecute6[T0,T1,T2,T3,T4,T5,TRet](CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5)
at IronPython.Runtime.Importer.ImportLightThrow(CodeContext context, String fullName, PythonTuple from, Int32 level)
at IronPython.Runtime.Operations.PythonOps.ImportTop(CodeContext context, String fullName, Int32 level)
at Microsoft.Scripting.Interpreter.FuncCallInstruction`4.Run(InterpretedFrame frame)
at Program.<Main>$(String[] args) in C:\Users\EvanN\Downloads\GoveeAPI-master\TestConsoleApp\Program.cs:line 15
I am sure all the paths are correct for this my c# script looks like this I am making a terminal program to control some lights if you want to test this type "LC" "Color Code" "255, 0, 0"
using IronPython.Hosting;
using Microsoft.Scripting.Hosting;
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("Welcome User");
while(true) {
Console.ForegroundColor = ConsoleColor.White;
string UserMessage = Console.ReadLine();
if(UserMessage == "exit")
break;
Console.WriteLine("LP > " + Response(UserMessage));
}
string Response(string m) {
if(m == "help") {
Console.ForegroundColor = ConsoleColor.White;
return @"help - shows all commands
LC - Light Command enter a command to controll lights
LC COMMANDS
Color Code - enter color code to set all lights to
Color - Enter a color to set all leds to
HEX - Enter a hex to set all leds to";
} else if(m == "LC") {
Console.ForegroundColor = ConsoleColor.Yellow;
LightsAccess();
return "completed";
}
Console.ForegroundColor = ConsoleColor.Red;
return "PLEASE ENTER A VAILD COMMAND";
}
void LightsAccess() {
while (true) {
Console.ForegroundColor = ConsoleColor.Green;
string UserMessage = Console.ReadLine();
if(UserMessage != "exit") {
if(UserMessage == "Color Code") {
Console.WriteLine("LP-SL-A > Enter Color Code");
UserMessage = Console.ReadLine();
ScriptEngine engine = Python.CreateEngine();
ScriptScope scope = engine.CreateScope();
var searchPaths = engine.GetSearchPaths();
searchPaths.Add(@"C:\Python310\Lib");
engine.SetSearchPaths(searchPaths);
engine.ExecuteFile(@"C:\Users\EvanN\Downloads\GoveeAPI-master\TestConsoleApp\run.py", scope);
dynamic testFunction = scope.GetVariable("runscript");
var result = testFunction(UserMessage);
} else if(UserMessage == "Color") {
} else if(UserMessage == "HEX") {
} else
break;
Console.WriteLine("LP-SL-A > Color Applied");
}
}
}
this is the part that gives me the error
Console.WriteLine("LP-SL-A > Enter Color Code");
UserMessage = Console.ReadLine();
ScriptEngine engine = Python.CreateEngine();
ScriptScope scope = engine.CreateScope();
var searchPaths = engine.GetSearchPaths();
searchPaths.Add(@"C:\Python310\Lib");
engine.SetSearchPaths(searchPaths);
engine.ExecuteFile(@"C:\Users\EvanN\Downloads\GoveeAPI-master\TestConsoleApp\run.py", scope);
dynamic testFunction = scope.GetVariable("runscript");
var result = testFunction(UserMessage);
my python script only has one line
import os
thank you for your time I hope you can help