我试图让我的一些Python脚本可以从.NET调用。我发现IronPython是实现这一目标的好工具。所以我试图使用它,但现在我有以下问题:
Process is terminated due to StackOverflowException.
并且找不到解决问题的方法。提前致谢。
答案 0 :(得分:2)
好吧,我想我已经弄明白了。
让我们假设使用ipy -X:Frames -m ensurepip
和ipy -X:Frames -m pip install requests
安装了pip和请求(可以找到有关IronPython中pip的更多信息here)。可以使用DLR Hosting API以下列方式使用请求:
var engine = IronPython.Hosting.Python.CreateEngine(new Dictionary<string, object> {{"Frames", true}});
var searchPaths = engine.GetSearchPaths();
searchPaths.Add(@"C:\Program Files (x86)\IronPython 2.7\Lib");
searchPaths.Add(@"C:\Program Files (x86)\IronPython 2.7\Lib\site-packages");
engine.SetSearchPaths(searchPaths);
engine.CreateScriptSourceFromString("import requests; r = requests.get('http://www.google.com/'); print r.status_code").Execute();
有关托管Python的更多信息,请参阅Hosting IronPython部分下的IronPython文档文件(默认位置为C:\Program Files (x86)\IronPython 2.7\Doc\IronPython.chm
)。