Проблема отладки устаревшего проекта Python 2.7 в Visual Studio 2017 - PullRequest
0 голосов
/ 07 мая 2019

У меня есть устаревшее консольное приложение, написанное на Python 2.7. Я должен внести в него небольшие изменения, поэтому я хотел бы отладить его в Visual Studio 2017. Без отладчика Visual Studio приложение просто работает нормально.

Когда я запускаю проект под отладчиком VS2017, он завершается с ошибкой:

TypeError: <module 'abcdef' from '[...]\abcdef.pyc'> is not JSON serializable

Эта ошибка полностью останавливает интерфейс Visual Studio. Единственный оставленный вариант - убить процесс Visual Studio в диспетчере задач.

Вот мой вопрос. Можно ли избежать этой проблемы без изменения вызывающего ее кода? Есть ли в Visual Studio какие-то магические настройки, которые могли бы сделать отладчик счастливым и позволить мне продолжить отладку приложения?

Ниже приведен полный трекбек:

Traceback (most recent call last):
  File "c:\program files (x86)\microsoft visual studio\2017\enterprise\common7\ide\extensions\microsoft\python\core\Packages\ptvsd\wrapper.py", line 1254, in done
    fut.result()
  File "c:\program files (x86)\microsoft visual studio\2017\enterprise\common7\ide\extensions\microsoft\python\core\Packages\ptvsd\futures.py", line 40, in result
    reraise(self._exc_info)
  File "c:\program files (x86)\microsoft visual studio\2017\enterprise\common7\ide\extensions\microsoft\python\core\Packages\ptvsd\futures.py", line 155, in callback
    x = it.send(fut.result())
  File "c:\program files (x86)\microsoft visual studio\2017\enterprise\common7\ide\extensions\microsoft\python\core\Packages\ptvsd\wrapper.py", line 1608, in on_stackTrace
    module = self.modules_mgr.add_or_get_from_path(norm_path)
  File "c:\program files (x86)\microsoft visual studio\2017\enterprise\common7\ide\extensions\microsoft\python\core\Packages\ptvsd\wrapper.py", line 618, in add_or_get_from_path
    self.proc.send_event('module', reason='new', module=module)
  File "c:\program files (x86)\microsoft visual studio\2017\enterprise\common7\ide\extensions\microsoft\python\core\Packages\ptvsd\ipcjson.py", line 279, in send_event
    body=kwargs,
  File "c:\program files (x86)\microsoft visual studio\2017\enterprise\common7\ide\extensions\microsoft\python\core\Packages\ptvsd\ipcjson.py", line 103, in _send
    content = json.dumps(payload).encode('utf-8')
  File "C:\Python27\lib\json\__init__.py", line 244, in dumps
    return _default_encoder.encode(obj)
  File "C:\Python27\lib\json\encoder.py", line 207, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "C:\Python27\lib\json\encoder.py", line 270, in iterencode
    return _iterencode(o, 0)
  File "C:\Python27\lib\json\encoder.py", line 184, in default
    raise TypeError(repr(o) + " is not JSON serializable")
TypeError: <module 'abcdef' from '[...]\abcdef.pyc'> is not JSON serializable

UPD. Lance Li-MSFT ответ был верным! После воссоздания такого же проекта с нуля ошибка исчезла. Теперь можно отлаживать приложение в VS2017.

UPD. Мистически, после пары успешных запусков воссозданного проекта в отладчике VS2017, эта ошибка появляется снова. Удаление файлов * .pyc и / или каталога .vs не помогает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...