weixin_38371360
Jeloys
采纳率25%
2018-12-19 10:14 阅读 1.4k

“Microsoft.Scripting.SyntaxErrorException”

5

用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 ','

不知道是什么原因,求各位大佬指点指点。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • caozhy 从今以后生命中的每一秒都属于我爱的人 2018-12-19 12:25

    根据提示信息是你的python的语法错。检查下代码的语法,以及缩进,还有你的struct 包是否导入。

    点赞 评论 复制链接分享

相关推荐