【问题标题】:Debug Python code that requires console input调试需要控制台输入的 Python 代码
【发布时间】:2019-08-06 08:55:19
【问题描述】:

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

这在突出显示的行中中断,我无法继续,因为无法提供控制台输入。目前,我将其注释掉,但是,可能还有一种方法可以提供所需的控制台输入。

谢谢。

【问题讨论】:

    标签: python debugging pycharm


    【解决方案1】:

    如果您只是想在调试时通过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 - 在文档中你可以找到所有你可能想要使用的命令,包括continue 等等。

    【讨论】:

    • 您的回答对我有帮助。谢谢。
    【解决方案2】:

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

    【讨论】:

    • 您的回答对我有帮助。谢谢。
    • @Arefe 如果您期望调试和修复的多次迭代,请使用此选项。真的很省时间。
    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 2020-07-31
      • 1970-01-01
      • 2020-01-04
      • 2014-04-28
      • 1970-01-01
      • 2015-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多