如何在Python中与C++程序共享数组?

3 投票
7 回答
2556 浏览
提问于 2025-04-15 23:31

我有两个程序在运行,一个是用Python写的,另一个是用C++写的。我需要在这两个程序之间共享一个二维数组(就是一些小数)。我现在在研究序列化,但可惜的是,pickle这个工具是专门为Python设计的。那么,有什么好的方法可以做到这一点呢?

谢谢!

补充说明:这个数组可能只有大约50个元素,但数据传输需要非常频繁,大约每秒60次或更多。

7 个回答

4

你可以试试用 boost::python 来让你的应用程序能够互相配合。

这里有一些关于 pickle 支持和普通 boost::python信息,还有 boost::python文档

4

你可以试着把数组放在一个叫做内存映射文件的地方,不过你需要确保对这个文件的访问是同步的,以避免出现竞争条件。

另外,你也可以在两个进程之间建立一个套接字(或者管道)连接,通过交换消息来传递值。

5

我推荐谷歌的 protobuf

撰写回答