我怎么搞砸了 python pdb

How did I mess up python pdb

之前,我在发现 ipdb 之后不久就使用 pip install 在系统范围内安装了 pdb。用pip安装成功。 效果不太好,让我决定回到以前的 pdb。 现在我使用 import pdb; pdb.set_trace()

时出错

exceptions.AttributeError: 'module' object has no attribute 'set_trace'

知道出了什么问题吗?

编辑: 这是重新安装 IPython 和 PDB 后的错误:

File "/usr/local/lib/python2.7/dist-packages/IPython/core/debugger.py", line 59, in from pdb import Pdb as OldPdb ImportError: cannot import name Pdb

尝试使用 cmd 并检查列表中是否有 pdb:

pip freeze 

这里会列出所有已安装的 pkg,python 请在此处查看,

如果你试试这个:

 pip uninstall pdb
 Cannot uninstall requirement pdb, not installed
 Storing debug log for failure in /tmp/tmpVgAfBP

你能确认 :

的输出吗
 pip uninstall pdb

我设法解决了这个问题。显然,pip 存储库中还有另一个名为 pdb 的模块用于共享密码管理。每次尝试 pip install pdb 我都不知道我的机器安装了错误的模块。 pdb 模块(python 调试器)在您将其安装在系统上时随产品一起提供,或者在 Linux Ubuntu 的情况下,它包含在位于在 /usr/lib/python2.7,而不是在 /usr/local/lib/python2.7 下安装的第三方模块。 由于一些奇怪的、未知的原因(我猜是安装 ipdb 导致的),我在预装的 python 模块下没有 pdb.py。例如,/usr/lib/python2.7。 解决我的问题的方法是从 python 文档网站下载 pdb.py 模块并将该文件放在上述文件夹中。 希望这能有所帮助。

是的,我今天遇到了同样的问题,解决方案与上面相同,尝试通过输入 pip freeze | grep pdb 进行分析,您可能会看到:

ipdb==0.9.0

pdb==0.1

这意味着你已经自己安装了pdb并且覆盖了ipdb,pip uninstall pdb之后,你应该只保留

ipdb==0.9.0

剩余!