我想在C ++和Python之间共享内存。
我的问题:
有没有办法#34; map"内存对应C ++变量,以便我可以从Python访问数据?我不想将6GB的数据复制到硬盘上。
答案 0 :(得分:3)
第一条道路:我认为更合适的方式是ctypes。您可以创建一个共享库,然后在Python中加载共享库的功能,并在Python中填充所需的所有数据容器。
在Windows中,您可以创建DLL,在Linux中,您可以创建共享的.so库。
现在,这有一个优势,即它将独立于您的Python版本。
第二条道路:我认为它不太合适,但你可以让它发挥作用,即Python C Extension。有了这个,你可以调用Python数据容器(PyObject
s)并将它们填入C。
但是,您在此处编译的代码将始终需要链接到Python库。
使用哪一个?:
使用这两个选项,您可以在C ++和Python之间传输大量内存,而不必涉及任何磁盘读/写操作。
希望这有帮助。