Я использую PythonQT для выполнения скрипта Python (потому что мне нужно вызывать методы C ++ из скрипта Python)
Моя версия winpdb — 1.4.6, а компьютер — CetOS 6.5
Теперь я хочу включить отладку в скрипте Python
я добавил rpdb2.start_embedded_debugger('test')
внутри сценария и называется PythonQt.EvalFile()
функция, теперь скрипт ожидает отладчика.
Я открыл пользовательский интерфейс winpdb из терминала и подключен к отладчику. Я могу сделать «Далее», «Шаг в» и т. Д., И все локальные переменные видны правильно
Но когда я пытаюсь отключить отладчик, он не отключается. Статус показывает «DETACHING» и ничего не происходит, и я даже не могу закрыть winpdb. Единственный выход — это убить winpdb.
Если я запускаю тот же файл скрипта из терминала, он работает правильно (python) и отключается, как и ожидалось.
Просматривая журналы, я обнаружил, что, если я запускаю из терминала, то канал отладки шифруется, но когда от PythonQt канал отладки НЕ зашифрован, не уверен, что это имеет какое-либо отношение к отсоединению.
Продолжая изучать код rpdb2.py, я обнаружил, что Winpdb зависает на линии self.getSession().getProxy().request_go(fdetach)
из request_go(self, fdetach = False)
: в rpdb2.py
Порт 51000 все еще находится в установленном режиме
Пожалуйста, сообщите мне об этом.
Наконец, я исправил проблему, используя последнюю версию Python QT
Других решений пока нет …