23

我是 python 新手,我正在尝试在标准 python 包中使用交互式 python 调试器。每当我在我的文本编辑器(atom)中或通过 iPython 在命令行中运行“import ipdb”时,我都会收到错误消息:ImportError: No module named 'ipdb'

我的 ipdb 模块在哪里?重新安装python后它仍然丢失。

谢谢!

4

4 回答 4

29

pdb是内置的。 ipdb你将不得不安装。

pip install ipdb
于 2016-01-15T03:54:51.927 回答
10

ipdb附带ipython,因此如果您已经ipython安装,则可以使用以下命令通过该软件包访问它:

from IPython.core.debugger import Pdb
ipdb = Pdb()

然后您可以像使用 ipdb 一样使用 ipdb import ipdb,例如:

ipdb.runcall(self, func, *args, **kwds)
ipdb.run(self, cmd, globals=None, locals=None)
# etc.

如果您还没有ipython安装,那么您可以使用pdb内置调试器。主要区别是ipdb有一些额外的花里胡哨。

于 2017-11-02T18:18:06.643 回答
2

在特定情况下,您想要一个功能更强大的ipdb调试器(包括自动完成之类的东西),ipython也有一个内置的(据我所知,它实际上是ipython默认使用的那个)。具体来说,您可以改为运行

from IPython.terminal.debugger import TerminalPdb
ipdb = TerminalPdb()

并获得与@Scott H's answer中的命令相同的功能,但现在您可以在出现的调试器中获得自动完成功能!

于 2021-07-23T20:38:16.913 回答
0

如果您使用--user参数安装。您可以在 中检查可执行文件名称~/.local/bin。应该是名字ipdb3

$ ipdb
-bash: ipdb: command not found

$ ipdb3
usage: python -m ipdb [-c command] ... pyfile [arg] ...

Debug the Python program given by pyfile.
于 2020-06-30T03:15:28.587 回答