用C#界面调用python脚本,使用IronPython,在调用时屡次出现此问题,不知道该如何解决?
首先附上我的Python代码,此处已简化(第一次用C#做界面,比较菜,请轻喷)
import struct
def main():
transID = 0
protocolID = 0
length = 6
unitID = 9
funcCode = 1 # 读保持寄存器的值
startAddr = 0 # start from 0x0000
quantityReg = 0
packet = struct.pack(">H", transID) + struct.pack(">H", protocolID) + struct.pack(">H", length) + \
struct.pack(">B", unitID) + struct.pack(">B", funcCode) + struct.pack(">H", startAddr) + \
struct.pack(">H", quantityReg)
return packet
我的C#程序:
using Microsoft.Scripting.Hosting;
using IronPython.Hosting;
private void button2_Click(object sender, EventArgs e)
{
ScriptRuntime scriptRuntime = Python.CreateRuntime();
var engine = scriptRuntime.GetEngine("python");
var paths = engine.GetSearchPaths();
paths.Add(@"C:/Users/Administrator/AppData/Local/Programs/Python/Python36-32/Lib");
engine.SetSearchPaths(paths);
dynamic dynamic = scriptRuntime.UseFile("Python/Kylin_Fuzz_2.py");
string dd = dynamic.main();
MessageBox.Show(dd + "");
}
出现的问题是:
“Host.exe”(CLR v4.0.30319: DefaultDomain): 已加载“C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
“Host.exe”(CLR v4.0.30319: DefaultDomain): 已加载“F:\Learning_Others\C#界面\Host\Host\bin\Debug\Host.exe”。已加载符号。
“Host.exe”(CLR v4.0.30319: Host.exe): 已加载“C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
“Host.exe”(CLR v4.0.30319: Host.exe): 已加载“C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
“Host.exe”(CLR v4.0.30319: Host.exe): 已加载“C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
“Host.exe”(CLR v4.0.30319: Host.exe): 已加载“C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
“Host.exe”(CLR v4.0.30319: Host.exe): 已加载“C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
“Host.exe”(CLR v4.0.30319: Host.exe): 已加载“C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
“Host.exe”(CLR v4.0.30319: Host.exe): 已加载“F:\Learning_Others\C#界面\Host\Host\bin\Debug\IronPython.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
“Host.exe”(CLR v4.0.30319: Host.exe): 已加载“F:\Learning_Others\C#界面\Host\Host\bin\Debug\Microsoft.Scripting.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
“Host.exe”(CLR v4.0.30319: Host.exe): 已加载“C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.CSharp\v4.0_4.0.0.0__b03f5f7f11d50a3a\Microsoft.CSharp.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
“Host.exe”(CLR v4.0.30319: Host.exe): 已加载“F:\Learning_Others\C#界面\Host\Host\bin\Debug\Microsoft.Dynamic.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
“Host.exe”(CLR v4.0.30319: Host.exe): 已加载“C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Numerics\v4.0_4.0.0.0__b77a5c561934e089\System.Numerics.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
“Host.exe”(CLR v4.0.30319: Host.exe): 已加载“F:\Learning_Others\C#界面\Host\Host\bin\Debug\IronPython.Modules.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
“Host.exe”(CLR v4.0.30319: Host.exe): 已加载“C:\Windows\Microsoft.Net\assembly\GAC_MSIL\mscorlib.resources\v4.0_4.0.0.0_zh-Hans_b77a5c561934e089\mscorlib.resources.dll”。模块已生成,不包含符号。
引发的异常:“Microsoft.Scripting.SyntaxErrorException”(位于 Microsoft.Dynamic.dll 中)
“Microsoft.Scripting.SyntaxErrorException”类型的未经处理的异常在 Microsoft.Dynamic.dll 中发生
unexpected token ','
不知道是什么原因,求各位大佬指点指点。