每隔几个月,我就在谷歌上搜索“从.NET调用Python”,因为我太累了,无法重新发明/移植一些东西,并在Python中找到一些很酷的代码。两种流行的解决方案是启动外部进程或使用IronPython
IronPython对我来说不是一种选择,因为我可能想使用Python的原因通常是一些依赖于NumPy/ScyPy的库。
最近,我开始学习C++的基本知识,发现可以将Python嵌入到C++中,并找到了文章附例。
通过P/Invoke从C++调用.NET非常容易。因此,我的场景是使用来自.NET的数据调用一些Python,并返回结果。
在我开始深入挖掘之前,我想问一下是否有人尝试过这种方法,这是可行的还是有更好的方法?
具体来说,
性能是一个值得关注的问题:主要用例是对实时数据的滑动窗口做一些数值工作。我认为外部过程对于频繁的电话来说是非常缓慢的-如果我错了请纠正我?
发布于 2014-11-22 09:03:50
我曾以下列方式使用过它:-
有一个C# dll,我需要从其中查询数据。因此,我开发了C++/CLI模块来与该dll进行交互,并处理与该数据相对应的一些委托和事件。然后,C++模块将接受该数据,并将其处理并发送到python模块。
python和c++之间的空白使用zmq (替换普通套接字)和google缓冲区(序列化和反序列化机制)来填补。python将只向C++发送请求,然后将其传输到C++/ CLI模块,该模块在获取数据时将从zmq推送到python.
发布于 2014-11-22 11:51:06
考虑将python实例作为处理服务器在单独的线程中生成--您可以使用消息将数据传递给它并从它返回,如果您的耦合松散,这可能比外部调用更好地工作,并且本质上意味着您的数字处理处于GUI的一个单独的核心上。您还将跳过为每个调用加载新进程所固有的处理时间。
https://stackoverflow.com/questions/27075671
复制相似问题