今天试用了好几种方法,最终只有一个方法成功,现将今天的收获和问题做个笔记
方法一:使用ironPython
这个方法首先要在VS中安装配置ironPython,且如果python脚本中包含第三方模块,这个方法大多会报错说找不到import的包(但有的也能成功),在网上也很难找到该问题的解决方法,所以这个方法比较使用于调用不包含第三方模块的python脚本。
C#代码:
using Microsoft.Scripting.Hosting;
using IronPython.Hosting;
//在具体方法里面写如下代码
ScriptEngine pyEngine = Python.CreateEngine();//创建Python解释器对象
dynamic py = pyEngine.ExecuteFile("new.py");//读取脚本文件
double str =123.789;
py.test(str);//调用new.py文件中的test方法,并传入参数
方法二:使用ScriptRuntime
这个方法不需要另外安装东西,我一个同学是使用这个方法成功了,可以调用包含第三方模块的Python脚本,但是我的不行,可能是各自的环境不同。
C#代码:
using Microsoft.Scripting.Hosting;
//在具体方法里面写如下代码
ScriptRuntime scriptRuntime = ScriptRuntime.CreateFromConfiguration();
ScriptEngine rbEng = scriptRuntime.GetEngine("Python");
dynamic py = scriptRuntime.UseFile("Models.py");//将Python脚本“Models.py”放在C#项目的Debug文件下,若不是就写文件的绝对路径
py.main(modelName, inputPath, resultKind, resultPath);//调用python脚本的main()方法,并传入参数
方法三:使用Process
这个方法也不需要另外安装东西,不管调用的Python脚本是否包含第三方模块都比较适用,而且我也试验成功了,就是代码多了一点,不过这个方法大多数都普遍适用。
C#代码:

最低0.47元/天 解锁文章
1603

被折叠的 条评论
为什么被折叠?



