Я попробовал его увидеть:
import sys
from multiprocessing.connection import Listener, Client
address = ('localhost', 6000)
def client():
conn = Client(address, authkey='secret password')
print conn.recv_bytes()
conn.close()
def server():
listener = Listener(address, authkey='secret password')
conn = listener.accept()
print 'connection accepted from', listener.last_accepted
conn.send_bytes('hello')
conn.close()
listener.close()
if __name__ == '__main__':
if sys.argv[1] == 'client':
client()
else:
server()
Вот результаты, которые я получил:
- CPython 2,7 + CPython 2,7: работает
- PyPy 1,7 + PyPy 1,7:
- CPython 2.7 + PyPy 1.7: не работает
- CPython 2.7 + PyPy Ночь (PyPy-с-JIT-50911-94e9969b5f00-linux64): работы
При использовании PyPy 1.7 (не имеет значения, что и сервер, который является клиентом), сообщается об ошибке с IOError: bad message length
. Это также отражает the report on the pypy-dev mailing list. Однако это было недавно исправлено (оно работает в ночной сборке), поэтому следующая версия (предположительно 1.8) также должна быть исправлена.
В целом это работает, потому что в модуле многопроцессорности используется модуль PPython, который стабилен и поддерживается в нескольких реализациях Python, даже PyPy.
Замечательно, что вы обнаружили этот отчет об ошибке! – Jonathan
Благодарим вас за тестирование! – Demolishun