首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过.NET桥从C++调用Python

通过.NET桥从C++调用Python
EN

Stack Overflow用户
提问于 2014-11-22 08:55:29
回答 2查看 2.8K关注 0票数 3

每隔几个月,我就在谷歌上搜索“从.NET调用Python”,因为我太累了,无法重新发明/移植一些东西,并在Python中找到一些很酷的代码。两种流行的解决方案是启动外部进程或使用IronPython

IronPython对我来说不是一种选择,因为我可能想使用Python的原因通常是一些依赖于NumPy/ScyPy的库。

最近,我开始学习C++的基本知识,发现可以将Python嵌入到C++中,并找到了文章附例

通过P/Invoke从C++调用.NET非常容易。因此,我的场景是使用来自.NET的数据调用一些Python,并返回结果。

在我开始深入挖掘之前,我想问一下是否有人尝试过这种方法,这是可行的还是有更好的方法?

具体来说,

  • 所有Python在嵌入时都能工作吗,例如NumPy、ScyPy、Pandas、PyMC等等?
  • 嵌入式Python与C++/CLI是否会以与标准C++相同的方式工作?
  • 如何将复杂数据传递给Python:序列化为JSON,或者类型之间存在映射?

性能是一个值得关注的问题:主要用例是对实时数据的滑动窗口做一些数值工作。我认为外部过程对于频繁的电话来说是非常缓慢的-如果我错了请纠正我?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-22 09:03:50

我曾以下列方式使用过它:-

有一个C# dll,我需要从其中查询数据。因此,我开发了C++/CLI模块来与该dll进行交互,并处理与该数据相对应的一些委托和事件。然后,C++模块将接受该数据,并将其处理并发送到python模块。

python和c++之间的空白使用zmq (替换普通套接字)和google缓冲区(序列化和反序列化机制)来填补。python将只向C++发送请求,然后将其传输到C++/ CLI模块,该模块在获取数据时将从zmq推送到python.

票数 2
EN

Stack Overflow用户

发布于 2014-11-22 11:51:06

考虑将python实例作为处理服务器在单独的线程中生成--您可以使用消息将数据传递给它并从它返回,如果您的耦合松散,这可能比外部调用更好地工作,并且本质上意味着您的数字处理处于GUI的一个单独的核心上。您还将跳过为每个调用加载新进程所固有的处理时间。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27075671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档