移植 Python 2 使用 _multiprocessing 的代码

Porting Python 2 code that uses _multiprocessing

我目前正在将一些 Python 2 代码移植到 运行 和 pypy 到 python 3。我有点难以处理一些使用的代码_multiprocessing 因为很难找到这方面的文档。

from _multiprocessing import address_of_buffer
#example usage
def buffer_info(self):
    return address_of_buffer(self._mmap)[0], self._size

当我尝试将此代码用于 Python3.4 时,我遇到了导入问题:

ImportError: cannot import name 'address_of_buffer'

在快速浏览了 Python 3 个文档后 https://docs.python.org/3/library/multiprocessing.html 我没有看到它的直接替代品。移植此代码的最佳方式是什么?

你可以使用 ctypes:

def address_of_buffer(buf):
    return ctypes.addressof(ctypes.c_char.from_buffer(buf))