C#学习教程:在C#中执行python脚本分享


在C#中执行python脚本

我试图在C#中执行python代码。 通常应该使用IronPython并在安装PTVS之后完成(我使用的是VS 2010)。

var pyEngine = Python.CreateEngine(); var pyScope = pyEngine.CreateScope(); try { pyEngine.ExecuteFile("plot.py", pyScope); } catch (Exception ex) { Console.WriteLine("There is a problem in your Python code: " + ex.Message); } 

问题是IronPython似乎无法识别像numpy,pylab或matplotlib这样的库。 我看了一下,发现有人在谈论Enthought Canopy或Anaconda,我已经安装了两个而没有解决问题。 我该怎么做才能解决问题?

为了执行导入一些库(如numpy和pylab)的Python脚本,可以这样做:

  string arg = string.Format(@"C:UsersayedDesktopIronPythonExamplesRunExternalScriptplot.py"); // Path to the Python code Process p = new Process(); p.StartInfo = new ProcessStartInfo(@"D:WinPythonWinPython-64bit-2.7.5.3python-2.7.5.amd64python.exe", arg); p.StartInfo.UseShellExecute = false; p.StartInfo.CreateNoWindow = true; // Hide the command line window p.StartInfo.RedirectStandardOutput = false; p.StartInfo.RedirectStandardError = false; Process processChild = Process.Start(p.StartInfo); 

如果您执行代码,IronPython将只查找当前工作目录中的脚本。 您需要添加更多搜索路径。 这是我使用ironpython的应用程序中的一些旧集成代码的一部分:

 var runtimeSetup = Python.CreateRuntimeSetup(null); runtimeSetup.DebugMode = false; runtimeSetup.Options["Frames"] = true; runtimeSetup.Options["FullFrames"] = true; var runtime = new ScriptRuntime(runtimeSetup); var scriptEngine = runtime.GetEngineByTypeName(typeof(PythonContext).AssemblyQualifiedName); // Set default search paths ICollection searchPaths = scriptEngine.GetSearchPaths(); searchPaths.Add("\Scripts\Python"); scriptEngine.SetSearchPaths(searchPaths); 

诀窍是在此代码行中添加所有路径: scriptEngine.SetSearchPaths(searchPaths); 。 如果你在这里添加包含plot.py的目录, plot.py一切都应该可行。

希望这可以帮助。

上述就是C#学习教程:在C#中执行python脚本分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/1031721.html

发表评论

邮箱地址不会被公开。 必填项已用*标注