Что необходимо для рефакторинга этого кода Twisted для Python3.6? - PullRequest
0 голосов
/ 21 сентября 2019

Не могу понять, как реорганизовать код, написанный для Twisted под Python2.7 для Python3.6

Я пытался выяснить, как заставить работать репозиторий на https://github.com/stylesuxx/udp-hole-punchingна Python3.6, используя библиотеку Twisted.Согласно Readme, Python2.7 необходим, хотя Twisted должен работать на Python3.5 +.Это наводит меня на мысль, что проблема в самом репозитории, хотя я не могу понять, что изменить.

Я запустил код под Python2.7, и он работает.Клиент и сервер соединятся и будут выводить сообщения, показывающие, какие соединения установлены.Однако в Python3.5 сообщения вообще не выводятся, и, по сути, кажется, что ничего не происходит вообще.Сообщения об ошибках не отображаются.

Ответы [ 2 ]

0 голосов
/ 22 сентября 2019

Хорошо, я думаю, что у меня есть ответ.Я нашел эту страницу: https://twisted.readthedocs.io/en/twisted-16.6.0/core/howto/python3.html.

Я нашел строки в server.py, который начинался с «self.transport.write», и отправил сообщение в виде байтов, а не строк, используя начальный b или.кодировать ().Я также изменил строку, если датаграмма == '0', если датаграмма == b'0 '.

Кажется, до сих пор работает.Если я преодолею еще какие-то препятствия, я поделюсь этим здесь.

0 голосов
/ 21 сентября 2019

Возможно, вы захотите начать с изменения синтаксиса, который должна выделять ваша IDE, если вы его используете, например, изменение операторов print с

print 'text'

на

print('text')

См.это шпаргалка и Портирование кода Python 2 на Python 3 для получения дополнительной информации.

...