繁体   English   中英

R的浏览器()在Python中等效

[英]R's browser() equivalent in Python

标题说明了一切。 当你的工作R并使用RStudio被丢弃,它很容易和简单的调试一些browser()在你的代码的任何地方打电话,看到什么不顺心。 有没有办法用Python做到这一点? 我慢慢厌倦了print语句调试。

看起来你正在寻找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

你可以使用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) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM