移植使用_multiprocessing的Python 2代码

时间:2015-02-02 06:14:58

标签: python python-3.x pypy

我目前正在移植一些用pypy运行到python 3的Python 2代码。我处理一些使用_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后,我没有看到直接替代它。移植此代码的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

您可以使用ctypes:

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