python - 如何将 PyObject * 内存数据复制到另一个内存地址?

标签 python c

我正在开发一个嵌入了 Python 的 C 程序。

宿主程序是多进程,通过共享内存(mmap)进行通信。

我在一个进程中创建了一个 Python 对象(例如 PyDict_New)。如何将此数据复制到共享内存,以便其他进程可以获取此数据并将其转换为 Python 对象?

最佳答案

最简单的方法是将您的 Python 对象 pickle 成一个字符串并将该字符串复制到共享内存中。然后,另一个进程会将其解封为 Python 对象。来自 manual :

“Pickling” is the process whereby a Python object hierarchy is converted into a byte stream, and “unpickling” is the inverse operation, whereby a byte stream is converted back into an object hierarchy.

关于python - 如何将 PyObject * 内存数据复制到另一个内存地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33581526/

相关文章:

分而治之递归算法的复杂性

python - 如何在 virtualenv 中安装 win32com 模块?

python - 内置函数str.lower()是如何实现的?

python - 将 matplotlib 轮廓限制/屏蔽到数据区域

c - 返回指向局部变量的指针

c - C 中标准输入的内存泄漏

c - STM32F746NG-发现: Program Stuck after first ADC read

python - 使用制表符在 Python 中打印表格时列对齐不正确

python - python函数调用后变量的意外变化

c - 如何制作下载其较新副本的二进制文件?(有限条件)