标签: ipdb

ipdb中的后续“列表”命令

我只是注意到在中使用l(即 list命令)时出现了奇怪的行为ipdb。我想我过去曾经见过与Perl调试器类似的东西,但这仍然让我感到困惑。

我第一次调用它时,它会在当前步骤(断点)周围正确显示约10行代码。但是,如果我反复按它,它将不再显示当前位置周围的代码,而是显示其下方的代码。

最终list显示了脚本的最后几行,如果我再按l一次,它将不再显示任何内容。

为什么会这样,以及如何使其与我第一次调用时一致?

python debugging ipython ipdb

5
推荐指数
1
解决办法
1104
查看次数

为 Python 3 安装 ipdb?

我使用安装了ipdbpip,但我仍然得到

ImportError: No module named ipdb.

我是否必须做其他事情才能引入这个模块?当然,我import ipdb也在我的文件的顶部。我的想法是:我安装了 Python 2.7 和 Python 3。Pip 安装ipdb到 Python 2.7 目录,但我正在运行的 Python 模块使用的是 Python 3。我认为这是问题所在,但我该如何解决它,以便ipdb可以与我的 Python 3 模块一起使用?谢谢!

python python-2.7 python-3.x ipdb

5
推荐指数
1
解决办法
7523
查看次数

如何在 Windows 上使用 Anaconda 安装 ipdb?

我已经安装了 Python 2.7,但我想尝试IPython,因此我按照 ipython 网站上的建议通过Anaconda安装了 IPython (尽管不确定这样做的优点/缺点是什么)。现在我想使用ipdb调试器。我想我需要确保它安装在 Anaconda 版本的 python 下,而不是普通的 python 下。

我该如何安装这个?一般来说,如果我想在 Anaconda 下安装一些任意的 python 模块,我该怎么做?

windows ipython ipdb anaconda

5
推荐指数
1
解决办法
7108
查看次数

使“交互”使用IPython控制台,而不是标准的Python?

在pdb / ipdb调试中,有用的interact命令为我提供了功能齐全的交互式Python控制台。

但是,即使我一ipdb开始使用,它似乎始终是“标准” Python控制台。有没有一种配置ipdb的方法,interact它将为我提供IPython控制台,而不是标准的Python?有趣的是,我确实收到了IPython样式提示,但是却没有使用IPython魔术,例如%whos

In [24]: 1/0
---------------------------------------------------------------------------
ZeroDivisionError                         Traceback (most recent call last)
<ipython-input-24-05c9758a9c21> in <module>()
----> 1 1/0

ZeroDivisionError: division by zero

In [25]: %debug
> <ipython-input-24-05c9758a9c21>(1)<module>()
----> 1 1/0

ipdb> interact
*interactive*
In : %whos
  File "<console>", line 1
    %whos
    ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

有没有办法让ipdb小号interact给我的全功能IPython控制台?

python debugging ipython pdb ipdb

5
推荐指数
1
解决办法
411
查看次数

使用Pdb进行Python调试

我正在使用带有ipdb的交互式图形Python调试器(Canopy的图形化调试器).我正在处理的脚本有多个导入的模块和几个调用它们各自的功能.每当我尝试调试运行时,执行就会在对导入模块的函数(特别是子进程)的调用中卡住.我的两个主要问题是:

1)在调试模式下运行会大大减慢速度吗?代码实际上是不是卡住了,而只是以一种非常缓慢的速度运行?

2)有没有办法完全传递代码并运行它们就好像我甚至没有调试一样?我想阻止调试器进入子进程,只是执行它就像正常运行一样.

我可能会抛弃图形化调试器,并从终端做所有事情,但我想避免这种情况,因为图形界面非常方便,节省了很多打字.

python debugging ipdb canopy

5
推荐指数
1
解决办法
334
查看次数

如何使用pdb或ipdb调试Tornado应用程序?

我用旋风ioloop开发应用,当它涉及到http_client.fetchcallback,我要开始PDB import pdb; pdb.set_trace(),但将引发一个例外:

> /home/yiwei.liyw/dsa-engine/src/collect/engine_task.py(52)task_created()
-> print response.body
(Pdb)
2015-10-26 15:30:38,629 ERROR ioloop.py:612 Exception in callback <functools.partial object at 0x7fe0d98e5e68>
Traceback (most recent call last):
  File "/home/yiwei.liyw/dsa-engine/venv/lib/python2.7/site-packages/tornado/ioloop.py", line 592, in _run_callback
    ret = callback()
  File "/home/yiwei.liyw/dsa-engine/venv/lib/python2.7/site-packages/tornado/stack_context.py", line 275, in null_wrapper
    return fn(*args, **kwargs)
  File "/home/yiwei.liyw/dsa-engine/src/collect/engine_task.py", line 52, in task_created
    print response.body
  File "/home/yiwei.liyw/dsa-engine/src/collect/engine_task.py", line 52, in task_created
    print response.body
  File "/home/tops/lib/python2.7/bdb.py", line 49, in trace_dispatch
    return self.dispatch_line(frame)
  File "/home/tops/lib/python2.7/bdb.py", line 68, in dispatch_line
    if …
Run Code Online (Sandbox Code Playgroud)

python tornado python-2.7 pdb ipdb

5
推荐指数
0
解决办法
600
查看次数

调试 Jupyter Notebook:单步执行单元格

在空白的 Jupyter 笔记本中,我在单元格中输入以下代码:

from IPython.core.debugger import set_trace
set_trace()
print("hello")
Run Code Online (Sandbox Code Playgroud)

运行单元后,我进入调试模式(第一个屏幕截图)。我想跳到下一行,因此我使用命令 n(ext),就像在 pdb 中一样。但随后我并没有像我预期的那样执行打印命令,而是执行一些内部 IPython 代码(第二个屏幕截图)。如何转到单元格代码中的下一行?

在此输入图像描述

编辑:根据一个答案的建议,我用 替换set_trace()breakpoint()但结果仍然相同。

python python-3.x ipdb jupyter-notebook

5
推荐指数
1
解决办法
5377
查看次数

在ipdb中,如何查询与命令同名的变量?

我正在尝试调试一个quicksort(A, l, r)具有名为 的局部变量的函数l。然而,在 ipdb 中,它也对应于查看当前行周围代码的命令。所以我看到这样的事情:

ipdb> dir()
['A', 'ipdb', 'l', 'r']
ipdb> A
[2, 4, 6, 1, 3, 5, 7, 8]
ipdb> l
     14         A[0], A[p] = A[p], A[0]
     15 
     16 def quicksort(A, l, r):
     17         # n = len(A)
     18         import ipdb; ipdb.set_trace()
---> 19         if len(A) == 1:
     20                 return
     21         else:
     22                 # choose_pivot(A)
     23                 q = partition(A, l, r)
     24                 quicksort(A, l, q-1)
Run Code Online (Sandbox Code Playgroud)

然而,在这种情况下,我实际上想做的是查看 的值l。有没有办法“转义”默认l命令并查看变量的值l

python ipdb

5
推荐指数
2
解决办法
1196
查看次数

ipdb:运行时警告:导入包“ipdb”后在 sys.modules 中找到“ipdb.__main__”

我正在使用 ipdb 调试我的 python,如下所示:

python -m ipdb my_test.py -d my_input_config -o my_output
Run Code Online (Sandbox Code Playgroud)

并得到以下错误:

/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/runpy.py:125: RuntimeWarning: 'ipdb.__main__' found in sys.modules after import of package 'ipdb', but prior to execution of 'ipdb.__main__'; this may result in unpredictable behaviour
  warn(RuntimeWarning(msg))
Run Code Online (Sandbox Code Playgroud)

这是什么意思,我该如何解决?谢谢!

python ipdb

5
推荐指数
0
解决办法
1102
查看次数

在线程中创建的SQLite对象只能与Django 2.2.2和ipdb在同一线程中使用

我将Django项目更新为2.2.2版,现在当我调用ipdb进行调试时,服务器会告诉我该错误。如果我回到Django 2.2.1,该错误就会消失。

System check identified no issues (0 silenced).
June 06, 2019 - 08:19:36
Django version 2.2.2, using settings 'laserapp.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
> /home/lynde/public_html/laserapp/gestion/views.py(192)get_context_data()
    191         import ipdb; ipdb.set_trace()
--> 192         context = super(ResumeOrderCodeView, self).get_context_data(**kwargs)
    193         try:

Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "/home/lynde/public_html/env/laser/lib/python3.6/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
    utility.execute()
  File "/home/lynde/public_html/env/laser/lib/python3.6/site-packages/django/core/management/__init__.py", line 375, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/lynde/public_html/env/laser/lib/python3.6/site-packages/django/core/management/base.py", line 323, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/home/lynde/public_html/env/laser/lib/python3.6/site-packages/django/core/management/commands/runserver.py", …
Run Code Online (Sandbox Code Playgroud)

django postgresql celery python-3.x ipdb

5
推荐指数
1
解决办法
295
查看次数