首页 > 解决方案 > C# 的快速方式与同一主机中具有大字符串数据的 python 3 模块通信

问题描述

我们有一个需要升级到 python 3 的 python 2 模块。并且同一主机中的 C# 应用程序将传递一个大的 XML 字符串数据来调用该 python 模块并使用 COM 服务器从 python 获取响应。由于 py2exe 支持 COM 服务器,它工作得非常好。但是 py2exe 在 python 3 中不再可用,并且其他 python 发布工具都不支持 COM 服务器(例如 pyinstaller)。所以我们必须另辟蹊径。

我尝试在 C# 中使用 Process,使用 StandardInput 调用 python,在 python 端,我将接受输入以获取数据并响应 C#。它工作正常,但与以前的实现相比,它看起来要慢得多。

还有一些其他选项,例如 Socket 并公开 REST API。但是对于同一主机上的两个应用程序,使用网络方法会不会过大?

标签: c#.netpython-3.xxmlpython-2.7

解决方案


在进一步挖掘之后,看起来您需要 gRPC,它在 Python 3 和 .NET(核心和框架 4.5+)中都受支持:

https://grpc.io/docs/tutorials/basic/python/

https://docs.microsoft.com/en-us/aspnet/core/grpc/basics?view=aspnetcore-3.1


推荐阅读