Jeloys 2018-12-19 10:14 采纳率: 0%
浏览 1888
已结题

“Microsoft.Scripting.SyntaxErrorException”

用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条回答 默认 最新

  • threenewbee 2018-12-19 12:25
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 求解 yolo算法问题
  • ¥15 虚拟机打包apk出现错误
  • ¥30 最小化遗憾贪心算法上界
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝