#python #debugging #pycharm
#python #отладка #pycharm
Вопрос:
Как отлаживать код в PyCharm
IDE, когда для этого требуется консольный ввод? Например, у меня есть фрагмент кода,
# if the config already exists prompt what to do
if pc and not self.prompt.ask_yesno('project_ovverride'):
self.prompt.say('setup_abort')
return
Это прерывает выделенную строку, и я не смог продолжить, поскольку не смог предоставить консольный ввод. На данный момент я его не комментирую, но, возможно, есть способ предоставить и требуемый ввод с консоли.
Спасибо.
Ответ №1:
Если вы просто хотите вводить через CLI
во время отладки; вы могли бы просто использовать step into
, как показано ниже. — Сначала включите «Запуск с консоли» в вашей конфигурации запуска.
- Измените tab на
console
в вашем отладчике. - Нажимайте
step into
, пока не увидите вопрос в консоли. - Введите свой ответ по мере необходимости.
- Нажмите на
continue
или любое другое действие из вашего отладчика по мере необходимости.
Если вы хотите выполнить отладку с помощью запуска скрипта в CLI
, вы ищете что-то в строках pdb
(Python Debugger). Вы можете прочитать больше здесь.
Пример:
my_example.py
try:
pdb_test = 1 / 0
except ZeroDivisionError:
print('Argh stop it!')
Командная строка:
(venv) $ python3 -m pdb my_example.py
> /my_example.py(1)<module>()
-> try:
(Pdb) s
> /my_example.py(2)<module>()
-> a = 1 / 0
(Pdb) s
ZeroDivisionError: division by zero
> /my_example.py(2)<module>()
-> a = 1 / 0
(Pdb)
То, что показано выше, это просто то, что я использую s
для командования pdb
to step
— в документации вы можете найти все команды, которые вы, возможно, захотите использовать, включая continue
и так далее.
Комментарии:
1. Ваш ответ помогает мне. Спасибо.
Ответ №2:
Первоначально нам нужно установить Run with Python console
в конфигурации запуска PyCharm IDE, а затем мы можем изменить окно отладчика на окно консоли во время отладки программного обеспечения. Я предоставил скриншоты, иллюстрирующие формулу,
Теперь переключитесь с отладчика на консоль и введите желаемый ввод.
Ответ №3:
Если вы используете Pycharm 2018.3 или выше, вы можете перенаправить свой ввод в файл. PS. Я не пробовал это, но это должно работать нормально.
Комментарии:
1. Ваш ответ помогает мне. Спасибо.
2. @Arefe используйте это, если вы ожидаете несколько итераций отладки и исправления. Это действительно экономит время.