c# 调用python语言

时间:2023-12-10 10:44:26

config   文件配置

<configuration>节中 第一个的位置插入如下节点,版本根据实际用到的来写

<configSections>
    <section name="microsoft.scripting" type="Microsoft.Scripting.Hosting.Configuration.Section, Microsoft.Scripting"/>
  </configSections>

<microsoft.scripting>     <languages>       <language names="IronPython,Python,py" extensions=".py" displayName="IronPython 2.7.5" type="IronPython.Runtime.PythonContext,IronPython"/>       <!--<language names="IronPython,Python,py" extensions=".py" displayName="IronPython 2.7.5" type="IronPython.Runtime.PythonContext,IronPython, Version=2.7.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>-->     </languages>

</microsoft.scripting>

添加      c#包 IronPython

引用

using Microsoft.Scripting.Hosting;

//存放python文件 的地址

string scriptToUse;

scriptToUse = "Scripts/AmountDisc.py";

ScriptRuntime scriptRuntime = ScriptRuntime.CreateFromConfiguration();

//插入语言块的类型
            ScriptEngine rbEng = scriptRuntime.GetEngine("python");
            ScriptSource source = rbEng.CreateScriptSourceFromFile(scriptToUse);
            ScriptScope scope = rbEng.CreateScope();

//插入语言块需要的参数
            scope.SetVariable("prodCount", 3);
            scope.SetVariable("amt", 4);

//执行语言块            source.Execute(scope);

//通过语言块得到值
            textDiscAmount.Text = scope.GetVariable("retAmt").ToString();