【问题标题】:Dig into variables while debugging在调试时挖掘变量
【发布时间】:2016-09-29 06:41:10
【问题描述】:

我目前正在使用 Python 调试代码。我已经有一段时间没有使用 Python 了。我在一个整数变量上放置了一些断点。假设这个变量是X = 10。我该怎么做:

  • 看看变量中有什么? (我可以突出显示并出现一个黄色案例,但如果有很多信息,这样显示是不切实际的)
  • 对变量进行一些操作,例如我想做X+2 并得到结果?

【问题讨论】:

  • 我不了解 Eclipse 中的 Python,但在常规 Eclipse 中有一个 Variables 窗口,它允许您仅查看变量及其值(菜单窗口、显示视图、其他、调试, 变量)。
  • 如果一切都失败了,一个快速而肮脏的方法(在大多数情况下)就是在控制台中打印变量: >> print X >> print type(x) 并停止之后,如果需要,您的程序:>> sys.exit()

标签: python eclipse debugging


【解决方案1】:

如 cmets 中所述,有许多 possible IDEs you can use 使用 Python。最初的问题是专门关于 Eclipse 的,所以我的答案集中在使用该 IDE 的解决方案上。如果您喜欢不同的环境,也可以使用其他解决方案...

首先,你需要弄清楚你用的是哪个插件来做eclipse。您可以在python wiki 上看到一些选项。看起来像PyDev is more popular,但你可以选择其他人。

假设您选择 PyDev,您可以使用here 中描述的监视工具来评估任何表达式。或者,您可以使用console debugger 直接在调试器中评估代码。

编辑:根据 cmets,您还可以使用 Window > Show View > Other > Debug > Expressions 打开“表达式”窗口。这与监视工具使用的窗口相同,可以直接编辑内容。

【讨论】:

  • 另外值得一提的是,使用 Eclipse 中的 PyDev 更简单的方法是在 Window > Show View > Other > Debug > Expressions 下打开 Expressions。从这里开始,当访问断点时,您将可以访问当时所有的局部变量,这使得测试变量甚至可调用对象变得非常容易。
  • @Murphy4 谢谢 - 我已将其添加到答案中。
  • 这是一个相当困难的方法,除非你熟悉 eclipse,否则我会使用 PyCharm,它非常适合初学者需要的手持部分,因为它的编码提示真的很有帮助。
  • @Amias 我发现 IDE 是一个品味问题。我认识的一些人更喜欢 Eclipse,而另一些人则使用 PyCharm。 OP 要求在 Eclipse 中提供解决方案(因此有标签)。
  • 当然,只是指出有比使用 Eclipse 更简单的方法来做到这一点。对这篇文章的编辑稍微混淆了它,因为问题中提到的 eclipse 已被删除。
【解决方案2】:

我相信每个人都有自己的看法,但我发现 Eclipse 的 Python 工具相当复杂。如果您没有绑定到 Eclipse IDE,请尝试PyCharm。它有非常好的工具来做你想做的事,还有许多教程视频。该视频向您展示了如何完全按照您的要求进行操作:https://www.youtube.com/watch?v=QJtWxm12Eo0

【讨论】:

  • Pycharm 具有出色的调试器集成,并且不会像其他 IDE 那样妨碍您,我在过去几年中一直在使用它,并且不能推荐它。好消息是,一旦您学会了一个 jetbrains IDE,您就可以轻松切换到另一个使用另一种语言的 IDE,并很快提高工作效率。
【解决方案3】:

我不认为你可以纯粹在 Eclipse 中做到这一点,如果没有大量插件的话。但是,有一些非常好的 python 调试工具。

如果您愿意亲自动手,内置的 python 调试器pdb 可以满足您的所有需求,甚至更多。将pdbpdb.set_trace() 导入您想要中断的位置,然后您将进入一个非常熟悉的交互式调试器,如果您以前使用过gdb

如果你想使用更专注于 IDE 的东西,我推荐Immunity Debugger。它确实相当不错,并且有很多文档。不过,这可能比您要寻找的要多一点。

【讨论】:

    【解决方案4】:

    尝试开源,免费VS Code(带有 Python 插件)。它有一个巧妙的智能感知功能,你可以观察、检查变量、调试它们。编辑器是基于 node.js 的,可以在每个平台上工作。恕我直言,Eclipse 对于 python 开发来说太过分了。

    【讨论】:

      【解决方案5】:

      ipdb是一个方便的python调试工具:

      ipdb 导出函数以访问 IPython 调试器,该调试器具有选项卡补全、语法突出显示、更好的回溯、更好的自省功能,与 pdb 模块具有相同的界面。

      要安装 ipdb,只需在 shell 中运行 pip install ipdb --user

      要设置断点,请在要跳转到调试器的行之前添加import ipdb; ipdb.set_trace()。例如:

      import ipdb; ipdb.set_trace()
      X=10
      

      一旦你运行你的程序python myfunc.py,就会触发一个类似 IPython 的交互式 shell,你可以在其中运行 python 命令。例如:

      ipdb> p X
      10
      ipdb> X+2
      12
      

      这里有一个简单的教程:An Introduction to Python Debugging

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-11-12
        • 2017-06-04
        • 1970-01-01
        • 2013-02-11
        • 2018-04-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多