【问题标题】:pdb debugger doesn't work in reticulate::repl_python()pdb 调试器在 reticulate::repl_python() 中不起作用
【发布时间】:2023-01-13 18:26:59
【问题描述】:

我尝试使用 pdb 包在 RStudio IDE 中调试我的 Python 脚本。 脚本如下所示:

a=1 
breakpoint()
b= 2
c = 5
k = 10 

当我尝试在控制台中打印一些输出 (p a) 时,什么也没有发生。 如果我使用命令 q 退出调试器,则会显示变量。 为什么 p 命令在调试模式下不显示任何输出?

【问题讨论】:

    标签: python debugging rstudio pdb


    【解决方案1】:

    我也找不到在 RStudio 中调试 python 代码的本机方法,但使用了 ipdb,它是 python 的迭代调试器

    尝试:

    import ipdb
    ipdb.set_trace()
    

    然后运行:

    python -m ipdb Run-Script.py
    

    我在这里遵循了本指南: https://hasil-sharma.github.io/2017-05-13-python-ipdb/

    【讨论】:

      【解决方案2】:

      Python 调试器 (pdb) 中的 p 命令用于打印变量或表达式的值,但它只会在脚本暂停在断点处时将值打印到控制台。

      当您使用 breakpoint() 函数在代码中设置断点时,它会告诉脚本在该点暂停执行并等待用户的进一步命令。当您输入 p 命令时,它应该将变量的值打印到控制台,但它只在脚本暂停时起作用,否则不会产生任何输出。

      在您的情况下,当您输入 p 命令时,脚本似乎没有在断点处暂停。可能由于代码中的某些错误或断点之前发生错误而未命中断点,这意味着脚本未执行断点行。

      您应该检查脚本是否有任何错误,并确保断点被脚本击中。此外,您应该尝试使用 --pdb 或 -m pdb 标志运行脚本,这将在脚本运行时自动启动调试器,并且脚本将在第一行暂停。

      您可以使用以下命令运行脚本:

      python -m pdb脚本.py

      这样您将确保脚本已暂停并且您可以使用 p 命令打印变量值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-28
        • 1970-01-01
        • 2016-10-30
        • 1970-01-01
        • 2018-12-03
        • 1970-01-01
        • 1970-01-01
        • 2016-11-23
        相关资源
        最近更新 更多