【发布时间】: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
我尝试使用 pdb 包在 RStudio IDE 中调试我的 Python 脚本。 脚本如下所示:
a=1
breakpoint()
b= 2
c = 5
k = 10
当我尝试在控制台中打印一些输出 (p a) 时,什么也没有发生。 如果我使用命令 q 退出调试器,则会显示变量。 为什么 p 命令在调试模式下不显示任何输出?
【问题讨论】:
标签: python debugging rstudio pdb
我也找不到在 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/
【讨论】:
Python 调试器 (pdb) 中的 p 命令用于打印变量或表达式的值,但它只会在脚本暂停在断点处时将值打印到控制台。
当您使用 breakpoint() 函数在代码中设置断点时,它会告诉脚本在该点暂停执行并等待用户的进一步命令。当您输入 p 命令时,它应该将变量的值打印到控制台,但它只在脚本暂停时起作用,否则不会产生任何输出。
在您的情况下,当您输入 p 命令时,脚本似乎没有在断点处暂停。可能由于代码中的某些错误或断点之前发生错误而未命中断点,这意味着脚本未执行断点行。
您应该检查脚本是否有任何错误,并确保断点被脚本击中。此外,您应该尝试使用 --pdb 或 -m pdb 标志运行脚本,这将在脚本运行时自动启动调试器,并且脚本将在第一行暂停。
您可以使用以下命令运行脚本:
python -m pdb脚本.py
这样您将确保脚本已暂停并且您可以使用 p 命令打印变量值。
【讨论】: