Показать статистику
0 голосов
от (4.6тыс. баллов)
При работе с bash я часто использовал ключик -x что бы видеть как происходит отработка скрипта. Сейчас у меня есть скрипт на Python, который где то входит в бесконечный цикл. Как запустить скрипт на Python, что бы видеть как и что исполяется?
1.7тыс. просмотров 2 ответов

2 Ответы

0 голосов
от (17.4тыс. баллов)

На стэк оверфлоу задавали подобный вопрос: https://stackoverflow.com/questions/4929251/how-to-step-through-python-code-to-help-debug-issues

Вкратце, вам нужно запустить ваш скрипт на пайтоне, используя модель pdb (Python Debug):

python -m pdb merge_lists.py

Увидите нечто такое:

python -m pdb merge_lists.py
> /Users/and3001/Documents/Personal/Coding/Python/merge_lists.py(3)<module>()
-> my_list     = [3, 4, 6, 10, 11, 15]
(Pdb)

Что бы продолжить работу, нажмите n (next). Так пошагово разберете все шаги вашего скрипта.

(Pdb) n
> /Users/and3001/Documents/Personal/Coding/Python/merge_lists.py(4)<module>()
-> alices_list = [1, 5, 8, 12, 14, 19]
(Pdb)

Что бы выйти, нажмите q

0 голосов
от (4.5тыс. баллов)

Для отладки Python-скрипта и просмотра выполнения каждой строки вы можете использовать встроенный модуль `trace`. Этот модуль позволяет вам видеть, как выполняется ваш скрипт, и определить место, где возникает бесконечный цикл.

Чтобы запустить ваш скрипт с трассировкой, используйте следующую команду:

python -m trace --trace your_script.py

Замените `your_script.py` именем вашего скрипта. В результате на экран будут выводиться строки кода по мере их выполнения, что поможет вам определить место, где возникает проблема с бесконечным циклом.

Если вы используете Python 3, то команда будет выглядеть следующим образом:

python3 -m trace --trace your_script.py

Также можете воспользоваться отладчиком Python, например, `pdb` (Python Debugger). Добавьте следующую строку в свой код перед местом, где вы подозреваете бесконечный цикл: 

import pdb; pdb.set_trace()

Затем запустите скрипт обычным способом:

python your_script.py

Используйте команды отладчика для пошагового выполнения кода и анализа переменных. Это также может помочь вам определить проблемное место с бесконечным циклом.

...