Как выглядит хороший рабочий процесс отладки python? - PullRequest
0 голосов
/ 08 марта 2020

Мой последний python рабочий процесс отладки кажется мне очень медленным и мало утешительным. Как я могу улучшить?

Настройка: я работаю с некоторыми сторонними python пакетами из github.

Рабочий процесс:

  1. при вводе некоторых происходит ошибка команда на терминал (Ubuntu WSL, python 3.7)
  2. чтение вывода сообщения об ошибке терминала, скорее всего, первое или последнее полезно
  3. из последнего сообщения, которое я беру с кодом ( Ctrl + левая мышь в vscode) и посмотрите на код
  4. Я нахожу некоторый вызов функции в стороннем модуле, который выглядит очень не связанным с проблемой
  5. Я добавляю import pdb к модулю, и pdb.set_trace() до вызова этой функции
  6. я снова запускаю программу, и она останавливается в точке останова
  7. , используя n, r, u, di, пытаясь приблизиться к источнику ошибка
  8. Я в конечном итоге нахожу условие возникновения ошибки в другом модуле, где проверяется некоторое свойство определенной переменной. Сама переменная определена на несколько уровней выше в стеке
  9. , перезапуск программы и остановка на той же точке останова, что и раньше, я пытаюсь перейти к точке, где установлена ​​переменная. Я не знаю, на каком уровне стека он установлен, поэтому я иногда скучаю по нему. Я установил промежуточные точки останова, чтобы сэкономить некоторую работу при повторном запуске
  10. Я наконец-то нашел истинную причину ошибки. Я могу проверить рабочее пространство и в конечном итоге исправить ошибку.
  11. i go через все модули и удалить import pdb и pdb.set_trace

Спасибо за любые предложения

Ответы [ 2 ]

1 голос
/ 08 марта 2020

вы используете IDE, не совсем понятно в вашем вопросе?

у них, как правило, есть графические c способы установки точек останова и пошагового выполнения, и это избавляет от необходимости менять источник.

не вдаваясь в мнения ide, но примерами ide с отладчиками являются spyder, thonny и др.

вы также можете запустить отладчик через командную строку, чтобы избежать изменения источника, но я не думаю, что так до go, если вы хотите упростить когнитивную нагрузку.

0 голосов
/ 08 марта 2020

Да, эти вещи вы должны сделать, и дополнительно вы можете включить ведение журнала везде, где это применимо, чтобы получить точную точку, где это произошло.

...