调试需要控制台输入的Python代码

时间:2019-03-15 09:54:17

标签: python debugging 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

enter image description here

这在突出显示的行中中断,并且由于无法提供控制台输入而无法继续。目前,我已将其注释掉,但是,也许也可以提供所需的控制台输入。

谢谢。

3 个答案:

答案 0 :(得分:2)

如果您只是在调试时希望通过CLI输入;您可以简单地使用step into,如下所示。 -首先在您的运行配置下启用“使用控制台运行”。

  1. 在调试器中将标签更改为console
  2. 单击step into,直到在控制台中看到问题为止。
  3. 根据需要输入答案。
  4. 根据需要单击continue或调试器中的任何其他操作。

如果您想通过在CLI中运行脚本来进行调试,则需要在pdb(Python调试器)的行上进行查找。您可以阅读更多here

示例:

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命令pdbstep的原因-在文档中,您可以找到所有可能要使用的命令,包括{{1 }}等。

答案 1 :(得分:0)

如果您使用的是Pycharm 2018.3或更高版本,则可以将输入重定向到文件。 PS。我没有尝试过,但是应该可以正常工作。 Set your input file here

答案 2 :(得分:0)

最初,我们需要在PyCharm IDE的“运行”配置中设置Run with Python console,然后在调试软件时将调试器窗口更改为控制台窗口。我提供了说明公式的屏幕截图

enter image description here

现在,从调试器切换到控制台并提供所需的输入。

enter image description here