我刚开始学习Python,并尝试使用标准Python包中的交互式Python调试器。但每当我在我的文本编辑器(Atom)或通过iPython命令行运行“import ipdb”时,就会出现错误:
ImportError: No module named 'ipdb'
我的ipdb模块在哪里?即使我重新安装了Python,它仍然丢失。
谢谢!
pdb
是内置的。你需要安装 ipdb
。
pip install ipdb
ipdb
已经随着 ipython
一起提供。因此,如果您已经安装了 ipython
,则可以通过以下方式使用该软件包访问它:
from IPython.core.debugger import Pdb
ipdb = Pdb()
那么你可以像这样使用ipdb,就好像你已经执行了 import ipdb
一样:
ipdb.runcall(self, func, *args, **kwds)
ipdb.run(self, cmd, globals=None, locals=None)
# etc.
如果您没有安装ipython
,那么可以使用内置调试器pdb
。主要区别在于ipdb
具有一些额外的功能。
ipdb
(包括自动完成等功能),ipython
也内置了一个(据我所知,实际上是ipython
默认使用的调试器)。具体来说,您可以运行以下命令:from IPython.terminal.debugger import TerminalPdb
ipdb = TerminalPdb()
现在您可以获得与@Scott H的答案相同的功能,但是您现在可以在调试器中获得自动完成!
如果您使用了--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.