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() 等价物的主要内容,如果未能解决你的问题,请参考以下文章

python-利用senleium实现定时重启路由器

Python Mechanize.Browser.Open(url) 状态码

python爬虫14--Selenium动态渲染页面抓取

对象在 R browser() 会话中既存在又不存在

python selenium打开新窗口,多窗口切换

Python教程:selenium模块用法教程