2015-02-02 1 views
1

В настоящее время я переношу некоторый код Python 2, который запускается с pypy на python 3. Я немного застрял в обработке кода, который использует _multiprocessing, поскольку документация трудно найти для этого.Портирование кода 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 Docs https://docs.python.org/3/library/multiprocessing.html Я не видя прямая замена для этого. Каков наилучший способ для переноса этого кода?

ответ

2

Вы можете использовать ctypes:

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

Я думаю, что это делает то, что мне нужно, поэтому я upvoted, я не совсем получил код, который это использует пройдя все испытания только еще, будет отмечаться как принято, когда все тесты проходят. – shuttle87