Eclipse+PyD中的Python调试

2024-05-18 10:53:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一些工作中尝试Eclipse+PyDev对。(EclipseV3.5.0+Pydevv1.5.6)我找不到将所有变量公开到PyDev控制台的方法(通过PyDev控制台->;当前活动编辑器选项的控制台),我使用一个简单的代码来描述这个问题。当我一步一步地浏览代码时,我无法从控制台访问我的“x”变量。它是在变量选项卡上查看的,但这并不是我真正想要的。

任何帮助都是感激的。

请参阅我的屏幕截图以获得更好的描述:

alt text

编辑:

假设添加一个简单的func,如:

def myfunc(x):
    return x**x

当我调试代码中添加的函数时,我可以从控制台轻松访问myfunc。(键入myfunc,在自动执行后它将可用:

>>> from part2.test import myfunc
>>> myfunc

然后,当我执行myfunc(5)时,它的行为就像在Python解释器中一样。以类似的方式访问变量对于调试代码是非常有用的。我有很大的数组,我在调试过程中做各种测试和操作。比如: 得到我的x并做x.sum(),然后再做x[::10],或者与其他数组进行转置操作观察结果、实验等。。。

希望会有更好的解决办法。


Tags: 方法代码gt编辑屏幕def选项请参阅
2条回答

对于这种探索性调试,我喜欢使用pdb,电池包括调试器。我没有在PyDev内部使用过它,所以我不知道它是如何组合在一起的。我猜它会做你想做的事。其用法示例:

import pdb

def myfunc(x):
    pdb.set_trace()
    return x**x

这将在执行return语句之前中断,并允许您使用完整的Pythonic语句来确定发生了什么。我使用它就像一个交互式的打印语句:设置我想深入研究的地方,检查值和计算结果,并逐步观察它的发生。也许这是一种懒散的调试方式,但有时在做出不那么懒散的决定之前,您需要更多的信息:-)

我通常引用的页面位于Python Conquers The Universe,它还链接了其他一些信息源。

更新:

在最新的PyDev版本中,可以右键单击堆栈中的某个帧,然后选择PyDev>;调试控制台,以便在调试会话期间使交互控制台具有与上下文关联的更多函数。


不幸的是,实际的交互控制台(这将是使用代码的首选方式(包括代码完成等--http://pydev.org/manual_adv_interactive_console.html))现在与调试会话没有连接(这是计划的,但仍然没有实现)。

不过,有了“更简单”的控制台,您仍然可以交互地检查和播放断点作用域中可用的变量:http://pydev.org/manual_adv_debug_console.html(这与pdb相同——只需要在断点命中后在可用的控制台中键入代码)。

干杯

法比奥

相关问题 更多 >