R 在 Python 中的 browser() 等价物
Posted
技术标签:
【中文标题】R 在 Python 中的 browser() 等价物【英文标题】:R's browser() equivalent in Python 【发布时间】:2017-11-27 10:05:11 【问题描述】:标题说明了一切。当您使用R
并使用RStudio
时,通过在代码中的任何位置删除browser()
调用并查看问题所在来调试某些东西真的很简单。有没有办法用 Python 做到这一点?我慢慢厌倦了打印语句调试。
【问题讨论】:
我猜你可以使用 IDE 并设置断点。或者,print(dir())
或 print(locals())
相信你在找pdb
【参考方案1】:
您似乎在寻找ipdb
基本用法是设置:
import ipdb
ipdb.set_trace()
在您的代码中进行探索;这将带您直接进入该部分代码,因此您可以在该点探索所有变量。
对于您的特定用例:“它会是我的控制台中的一个设置,以便它在崩溃之前立即打开 pdb”(对另一个答案的评论),您可以使用上下文管理器:launch_ipdb_on_exception
例如:
from ipdb import launch_ipdb_on_exception
def silly():
my_list = [1,2,3]
for i in xrange(4):
print my_list[i]
if __name__ == "__main__":
with launch_ipdb_on_exception():
silly()
会带你去ipdb
会话:
5 for i in xrange(4):
----> 6 print my_list[i]
7
ipdb> i
3
【讨论】:
【参考方案2】:你可以使用python的调试器
import pdb
pdb.set_trace()
这将在调试模式下暂停脚本
例子:
my_file=open('running_config','r')
word_count=
special_character_count=
import pdb
pdb.set_trace() <== The code will pause here
for config_lines in my_file.readlines():
l=config_lines.strip()
lines=l.upper()
控制台:
> /home/samwilliams/workspace/parse_running_config/file_operations.py(6)<module>()
-> for config_lines in my_file.readlines():
(Pdb) print special_character_count
(Pdb)
【讨论】:
它会是我的控制台中的一个设置,以便它在崩溃之前打开 pdb? 只需在脚本崩溃之前将其写入脚本即可。它将在调试模式下暂停,您只需检查变量并查看导致问题的变量。 @Adam,我相信您正在寻找launch_ipdb_on_exception
,请参阅我的更新答案。以上是关于R 在 Python 中的 browser() 等价物的主要内容,如果未能解决你的问题,请参考以下文章