C#与Python通信的最快方法是什么?

时间:2014-04-25 18:17:22

标签: c# python

我需要一种方法让c#与任意版本的Python进行通信。用户传递Python的路径,因此他们可以选择他们想要的任何版本。我需要能够将一个字符串传递给Python,并获得一个浮点数。这需要发生几千次。现在我只是使用标准输入/输出,但它似乎非常慢。有没有更快的方法呢?

2 个答案:

答案 0 :(得分:5)

通常,"最佳"处理这种情况的方法是使用IronPython而不是让用户提供自己的Python运行时。

您也可以使用Python for .NET,但这会再次将您绑定到特定版本的Python。

如果您控制在Python中调用的内容,但需要任意版本的python,则可以使用通用消息传递服务。一种选择是通过管道设置IPC通道,这些管道在Python和.NET中受支持。这将提供快速的C# - > Python-> C#通信,同时保持流程分离。

如果你需要python的任意版本和安装,那么通过shell进程执行和获取信息可能是唯一的选择。

答案 1 :(得分:0)

使用zmq的速度非常快,C#和Python都可以使用库,可以通过网络进行通信,在某些情况下比普通的TCP更快。

E.g。 iPyhton正在将其用于内部组件间通信。

我的StackOverflow答案显示Lock server implemented over zmq,也可以用来为C#提供服务。