.NET和Python通过IronPython进行互操作
我试图使我的一些Python脚本可以从.NET调用。我发现IronPython是实现这一点的好工具。所以我试着使用它,但现在我有以下问题:.NET和Python通过IronPython进行互操作,python,.net,interop,ironpython,Python,.net,Interop,Ironpython,我试图使我的一些Python脚本可以从.NET调用。我发现IronPython是实现这一点的好工具。所以我试着使用它,但现在我有以下问题: 如何将软件包安装到IronPython?我现有的Python代码使用它们,所以我需要安装它们。我尝试按照安装pip,但由于StackOverflowException,Get进程终止。并没有找到解决问题的方法 假设我能够安装软件包,那么带有C/C++绑定的软件包是否仍然不能在IronPython中使用?因为on写的是无法安装NumPy和SciPy,但页面似乎
进程终止。
并没有找到解决问题的方法提前谢谢。好的,我想我已经搞定了
ipy-X:Frames-m ensurepip
和ipy-X:Frames-m pip安装请求安装的(可以找到IronPython中有关pip的更多信息)。可以通过以下方式使用DLR宿主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();
var-engine=IronPython.Hosting.Python.CreateEngine(新字典{{“Frames”,true});
var searchpath=engine.getsearchpath();
添加(@“C:\ProgramFiles(x86)\IronPython 2.7\Lib”);
添加(@“C:\ProgramFiles(x86)\IronPython2.7\Lib\site packages”);
engine.SetSearchPath(搜索路径);
CreateScriptSourceFromString(“导入请求;r=requests.get('http://www.google.com/“);打印r.status_code”).Execute();
有关托管Python的更多信息,请参见托管IronPython部分下的IronPython文档文件(默认位置为C:\ProgramFiles(x86)\IronPython 2.7\Doc\IronPython.chm
)
@denfromufa感谢您提供了一个可能的解决方案。正如我看到的,Python for.NET需要完整的CPython安装。有没有办法将解释器和已安装的包“打包”(不知道如何正确调用此过程)到一个“文件”中,并在Python for.NET中使用此“文件”作为解释器?我希望我的想法是可以理解的。是的,你们需要指出使用pythonhome和path-env的独立CPython解释器的位置。从.NET调用时使用VAR